Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何操作汇总表结果_R - Fatal编程技术网

R 如何操作汇总表结果

R 如何操作汇总表结果,r,R,我有一些数据如下所示: A B 6 Often Often 7 Always Always 8 Rarely Rarely 9 Sometimes Often structure(list(A = structure(c(5L, 6L, 3L, 4L), .Label = c("", "Almost Never", "Rarely", "Sometimes", "Often", "Always"), class = c("ordered"

我有一些数据如下所示:

          A      B
6     Often  Often
7    Always Always
8    Rarely Rarely
9 Sometimes  Often

structure(list(A = structure(c(5L, 6L, 3L, 4L), .Label = c("", 
"Almost Never", "Rarely", "Sometimes", "Often", "Always"), class = c("ordered", 
"factor")), B = structure(c(5L, 6L, 3L, 5L), .Label = c("", "Almost Never", 
"Rarely", "Sometimes", "Often", "Always"), class = c("ordered", 
"factor"))), .Names = c("A", "B"), row.names = 6:9, class = "data.frame")
使用summary,我根据可能的响应得到每种类型响应的计数,这正是我想要的:

            A                B    
             :0               :0  
 Almost Never:0   Almost Never:0  
 Rarely      :1   Rarely      :1  
 Sometimes   :1   Sometimes   :0  
 Often       :1   Often       :2  
 Always      :1   Always      :1  
现在,我想操纵这些数字以获得(经常+总是)/总体响应。虽然摘要输出是字符输出——我可以在冒号上拆分,但肯定有更好的方法


鉴于上述数据集,我如何计算每个问题的经常+总回答百分比?

这可以使用
apply
表来完成(假设
d
是您的数据框):

请注意,只有在每列中始终至少有一个“始终”和一个“经常”时,上述方法才有效。以下内容稍微不够简洁,但即使某列中缺少“始终”或“经常”,也可以使用:

sapply(1:NCOL(d), function(i) {
        tab = table(d[, i])
        (tab["Often"] + tab["Always"]) / sum(tab)
})

这可以使用
apply
table
来完成(假设
d
是您的数据帧):

请注意,只有在每列中始终至少有一个“始终”和一个“经常”时,上述方法才有效。以下内容稍微不够简洁,但即使某列中缺少“始终”或“经常”,也可以使用:

sapply(1:NCOL(d), function(i) {
        tab = table(d[, i])
        (tab["Often"] + tab["Always"]) / sum(tab)
})