[英]descriptive statistics in table r for multiple variables
我對R完全陌生,我會感激任何人花時間幫助我完成這些可能很簡單的任務。 我對所有可用資源一無所獲,不確定從哪里開始。
我的數據如下所示:
subject sex age nR medL medR meanL meanR pL ageBin
1 0146si 1 67 26 1 1 1.882353 1.5294118 0.5517241 1
2 0162le 1 72 5 2 1 2 1.25 0.6153846 1
3 0323er 1 54 30 2.5 3 2.416667 2.5 0.4915254 0
4 0811ne 0 41 21 2 2 2 1.75 0.5333333 0
5 0825en 1 44 31 2 2 2.588235 1.8235294 0.5866667 0
盡管實際數據中涉及變量的主題很多很多。
我需要做的第一件事是比較“ ageBin”值。 0 = 60歲以下,1 = 60歲以上。我想比較兩組之間的統計數據。 因此,我想我需要做的第一件事就是能夠識別不同的ageBin值並使它們成為兩行。
然后,我需要做一些事情,例如計算兩組值的頻率(即1和0的實例數),“年齡”變量的平均值,年齡變量的中位數,男性人數(即。sex = 1),meanL的平均值等。 我只希望它們全部放在一張桌子上。
因此,潛在表的示例可能是
n nMale mAge
ageBin 0 14 x x
ageBin 1 14 x x
我可以很容易地在SPSS甚至Excel中完成這些工作……我只是真的想開始使用R。因此,有人可以提供任何資源或建議來向我指出正確的方向,都是非常有用的。 抱歉,如果聽起來不清楚...如有必要,我可以嘗試澄清。
預先感謝任何人。
嘗試by
功能:
如果您的數據框名為df
:
by(data=df, INDICES=df$ageBin, FUN=summary)
使用plyr()
包拆分數據結構,然后應用函數將所有結果組合在一起。
install.packages("plyr") # install package from CRAN
library(plyr) # load the package into R
dd <- list(subject=c("0146si", "0162le", "1323er", "0811ne", "0825en"),
sex = c(1,1,1,0,1),
age = c(67,72,54,41,44),
nR = c(26,5,30,21,31),
medL = c(1,2,2.5,2,2),
medR = c(1,1,3,2,2),
meanL = c(1.882352,2,2.416667,2,2.588235),
meanR = c(1.5294118,1.25,2.5,1.75,1.8235294),
pL = c(0.5517241,0.6153846,0.4915254,0.5333333,0.5866667),
ageBin = c(1,1,0,0,0))
dd <- data.frame(dd) # convert to data.frame
使用ddply
函數,您可以執行諸如計算兩組值的頻率之類的操作
ddply(dd, .(ageBin), summarise, nMale = sum(sex), mAge = mean(age))
ageBin nMale mAge
0 2 46.33333
1 2 69.50000
以下是Sean Anderson提供的非常有用的資源,可幫助您快速使用plyr軟件包。
包作者Hadley Wickham提供了更全面的參考資料,可在此處找到
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.