xtabs和dplyr的比例略有不同

时间:2016-07-29 21:16:18

标签: r dplyr mismatch

我试图在参与者和条件中获得二进制响应的平均比例。 xtabs会返回此信息:

prop.table(xtabs(~condition + newHigh, data),1)

              newHigh
condition     high      low
pauseN2       0.1000000 0.9000000
duration      0.1833333 0.8166667
fallingInt    0.2166667 0.7833333
pause         0.6333333 0.3666667
pauseDuration 0.5666667 0.4333333
pauseRising   0.5833333 0.4166667
risingInt     0.4833333 0.5166667

因为我想绘制高的总体平均百分比,但也添加所有参与者的SE(n = 10),我使用了dplyr

prop = data %>%
       group_by(participant, condition, newHigh) %>%
       summarise(n = n()) %>%
       mutate(Freq = n / sum(n)) %>%
       filter(newHigh == "high")

我手动检查了prop中几位参与者的计数和比例,并且它们是正确的(它们与我的xtabs匹配)。但是,当我使用stat_summary(fun.data = mean_se)中的ggplot绘制它时,所有条件下的总体平均值略有偏差。

我怀疑上面的mutate行有问题。有没有人经历过这种不匹配?

数据样本

     participant     condition newHigh
327      BP03_vA    fallingInt     low
502      BP05_vA   pauseRising     low
835      BP08_vB      duration    high
90       BP01_vA      duration     low
1040     BP10_vA      duration     low
961      BP09_vB    fallingInt     low
518      BP05_vA     risingInt     low
885      BP08_vB         pause    high
868      BP08_vB    fallingInt     low
572      BP06_vB      duration    high
654      BP06_vB    fallingInt     low
67       BP01_vA    fallingInt     low
83       BP01_vA     risingInt    high
456      BP05_vA      duration     low
753      BP07_vB pauseDuration     low
437      BP04_vA pauseDuration    high
686      BP07_vB      duration    high
70       BP01_vA     risingInt     low
75       BP01_vA       pauseN2    high
1098     BP10_vA      duration     low

0 个答案:

没有答案