2013-08-26 64 views
4

如何設置彙總數據的列名集列名ddply

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

​​
+1

難道你看看'ddply'的第一個例子? – Henrik

+0

另外,你的*有什麼問題像*例子中的? – flodel

+1

@Henrik,如果你的意思是'ddply(dfx,。(group,sex),總結, mean = round(mean(age),2), sd = round(sd(age),2)做,但它看起來不同於函數聲明的解釋,我不能映射第三和第四個參數。 – Klaus

回答

6

也許你正在尋找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 
+1

你也可以使用分組變量,因此:'length(col1)'。 – flodel