5

如何在中设置汇总数据的列名

library(plyr)
ddply(data,.(col1,col2),nrow)

ddply(data,.(col1,col2),function(x) data.frame(number=nrow(x)))
4

1 回答 1

7

也许您正在寻找summarize(或mutatetransform,取决于您想要做什么)。

一个小例子:

set.seed(1)
data <- data.frame(col1 = c(1, 2, 2, 3, 3, 4),
                   col2 = c(1, 2, 2, 1, 2, 1),
                   z = rnorm(6))
ddply(data,.(col1,col2), summarize, 
      number = length(z), newcol = mean(z))
#   col1 col2 number     newcol
# 1    1    1      1 -0.6264538
# 2    2    2      2 -0.3259926
# 3    3    1      1  1.5952808
# 4    3    2      1  0.3295078
# 5    4    1      1 -0.8204684
于 2013-08-26T11:08:54.930 回答