2013-12-17 58 views
1

內爲每個唯一的變量的變量我有一個包含對於許多個人不同生長變量的縱向的電子表格。此刻我的R代碼裏面看起來是這樣的:摘要統計的條件

D5<-ifelse(growth$agyr == 5, growth$R.2ND.DIG.AVERAGE,NA) 

既然是縱向的,我對每一個人的倍數年齡相同的測量,因此變量agyr。在本例中,採取誰擁有在年齡手指測量所有的孩子都5

我想這樣做是做,爲所有年齡段,這樣我就不必每次都定義一個對象,這樣我就可以基本上針對任何給定的agyr運行一些關於手指長度的總結統計。當然,這是可能的,但我仍然R.

初學者

回答

1

tapply()這裏是你的朋友。對於平均值,例如:

with(growth, 
    tapply(R.2ND.DIG.AVERAGE,agyr,mean) 
) 

參見?tapply和一些很好的介紹書R.而且還?with,一個功能,可以真正使你的代碼更大量readible。

如果你想平均值多層次的,你可以給tapply()因素列表。 (!倍)說gender是一個變量,以及,可以執行例如:

with(growth, 
    tapply(R.2ND.DIG.AVERAGE,list(agyr,gender),mean) 
) 

tapply()返回一個數組狀結構(矢量,矩陣或多維陣列,取決於分類因素的數量)。如果你想在一個數據幀的結果和/或一次總結多個變量,看?aggregate,如:

thevars <- c("R.2ND.DIG.AVERAGE","VAR2","MOREVAR") 
aggregate(growth[thevars],by=list(agyr,gender), FUN="mean") 

或使用公式接口:

aggregate(cbind(R.2ND.DIG.AVERAGE,VAR2,MOREVAR) ~ agyr + gender, 
     data=growth, FUN = "mean") 

請務必檢查幫助文件也是如此。 tapply()aggregate()都非常強大,並有很多其他的可能性。

+0

謝謝。對不起,我沒有把這個問題放在我原來的問題中,但如果我有另一個有性別編碼的變量,是否有一種方法可以每年梳理出性別? – user2969279

+0

爲你增加了一些額外的信息。檢查我也提到的幫助文件,它們非常有用,幷包含更多示例。 –