我有一个数据帧df
,如下所示:
subj lang mod L_prnt cohort
1 a1 eng prnt 0.498529 EL1
2 a1 eng spch 0.151919 EL1
3 a1 heb prnt 0.428959 EL1
4 a1 heb spch -0.098831 EL1
5 b1 eng prnt 0.318330 HL1
6 b1 eng spch 0.212678 HL1
.
.
.
400 b54 heb spch 0.356721 HL1
除L_prnt
之外的所有变量都是因素。
我想绘制一个geom_boxplot
,它为lang
提供由cohort
,mod
分隔的值。以下代码为我提供了一个看起来不错的输出:
ggplot(df) +
geom_boxplot(aes(x=lang, y=df[,L_prnt], colour = cohort)) +
facet_grid(. ~mod)
但如果我查看每个中间值,请使用aggregate
函数,如下所示:
aggregate(L_prnt ~ cohort + lang + mod, data=df, FUN = median)
然后我得到以下输出:
cohort lang mod L_prnt
1 EL1 eng prnt 0.3344170
2 HL1 eng prnt 0.4340280
3 EL1 heb prnt 0.1632390
4 HL1 heb prnt 0.4673595
5 EL1 eng spch 0.0747170
6 HL1 eng spch 0.0782405
7 EL1 heb spch 0.0764705
8 HL1 heb spch 0.0776450
这些显然与我在箱线图中看到的中值非常不同。方框图显示全局heb
值较低,而中位数值显示spch
值全面降低。
我出错了什么?