哈德利让我转向plyr包裹,我发现自己一直在使用它来做'分组'的东西。但我发现自己必须始终重命名结果列,因为它们默认为V1,V2等。
以下是一个例子:
mydata<-data.frame(matrix(rnorm(144, mean=2, sd=2),72,2),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(mydata) <- c("x_value", "acres", "state")
groupAcres <- ddply(mydata, c("state"), function(df)c(sum(df$acres)))
colnames(groupAcres) <- c("state","stateAcres")
有没有办法让ddply为我命名结果列,以便我可以省略最后一行?
答案 0 :(得分:19)
使用汇总(或总结):
groupAcres <- ddply(mydata, "state", summarise,
myName = sum(acres))
答案 1 :(得分:11)
这似乎有效:
> groupAcres <- ddply(mydata, c("state"), function(df) c(myName=sum(df$acres)))
> groupAcres
state myName
1 A 56.87973
2 B 57.84451
3 C 52.82415