2010-09-03 23 views
2

當使用plyr時,我經常想要1)只對變量的一個子集執行操作,2)命名操作的輸出。例如:plyr中的'彙總'功能是否仍然存在?

d = data.frame(sex=c("m","f","m","m","f","f"), age=c(30,20,15,50,10,40), weight=c(130,120,115,150,90,180)) 
ddply(d, .(sex), function(df) data.frame(age_mu = mean(df$age))) 

但這似乎有點笨重,而且好像我應該能夠寫類似:

ddply(d, .(sex), age_mu = mean(age)) 

從我讀過的東西,它看起來像有(或?曾經是)列入plyr一個總結的功能,這將讓我寫:

ddply(d, .(sex), transform, age_mu = mean(age)) 

然而,當我嘗試使用總結功能,R告訴我,它不存在。它是否已被重命名或移動到另一個包中?我在Mac上使用plyr版本0.1.5(我相信它是最新的 - 我嘗試更新)。

+2

您的更新顯然不成功;當前版本爲1.1,通常在CRAN上,不同平臺上的軟件包最新版本沒有區別。 – mbq 2010-09-03 07:20:09

+2

有差異。舊R版本不能獲得所有新軟件包。我懷疑grautur也在運行比R 2.11.1更早的東西。 – 2010-09-03 11:34:48

回答

2

是的,它仍然存在那裏。我使用plyr 1.1版,所以你的版本看起來很老。