【发布时间】:2016-10-10 23:08:47
【问题描述】:
我有一个由
生成的数据框points_A = sample(1:6,6)
points_B = sample(1:6,6)
points_C = sample(1:6,6)
df <- data.frame( name = gl(3,2,labels=c("Luca","Mario","Paolo") ) , cbind(points_A,points_B,points_C) )
显示为
name points_A points_B points_C
1 Luca 5 2 3
2 Luca 3 3 1
3 Mario 1 5 2
4 Mario 6 6 4
5 Paolo 4 4 5
6 Paolo 2 1 6
我想对按列名(第一列)分组的行应用一个函数(例如 sum() )。
输出应该是这样的:
name points_A points_B points_C
1 Luca 8 5 4
2 Mario 7 11 6
3 Paolo 6 5 11
有什么建议吗?
【问题讨论】:
-
aggregate(. ~ name, df, sum),或在 dplyr 中,df %>% group_by(name) %>% summarise_all(sum) -
aggregate(. ~ name, df, sum)这是有效的,但如果我还有其他列,如姓氏、城市等,我仍然想要在数据框中但我不想传递给聚合,因为它们是另一种数据类型?有没有办法指定哪些内容不能进入?