我试图用R(平均值、sd、var)计算以下数据框架的基本统计数据(本表中的数字是响应的频率):
Question Strongly disagree Disagree Don't know Agree Strongly agree
A 1 1 15 4 25
B 1 1 18 3 23
C 0 0 19 1 26 我如何计算我上面提到的内容,并可视化这些数据?
发布于 2017-05-02 17:02:02
在这种情况下,获得简要统计数据的唯一方法是强烈假设答复之间的差异是相同的(例如,“强烈不同意”和“不同意”之间的区别与“不同意”和“不知道”之间的区别相同)。如果你愿意做这个假设,那么你就可以计算加权平均值。
tt <- read.table(header=TRUE,textConnection("
Question Strongly_disagree Disagree Dont_know Agree Strongly_agree
A 1 1 15 4 25
B 1 1 18 3 23
C 0 0 19 1 26"))
tt2 <- tt[,-1] ## scores only
ss <- sweep(tt2,MARGIN=2,FUN="*",1:5) ## weight by numeric equivalent平均值:计算分数的加权平均值。
(meanvals <- rowSums(ss)/rowSums(tt2))
## [1] 4.108696 4.000000 4.152174这些对应的选择等于或略比“同意”更积极。
或者,您可以使用apply(tt2,1,weighted.mean,x=1:5)
标准差:
devs <- outer(-meanvals,1:5,"+")
sqrt(rowSums(devs^2*tt2)/rowSums(tt2)) (您可能需要用rowSums(tt2)-1除以获得样本标准差)。
https://stackoverflow.com/questions/43743051
复制相似问题