我正在尝试从单个数据框中绘制几个有序(即从高到低中位数)条件箱线图。一般顺序如下:
- 根据 variable.group 对 variable1 的组中位数进行反向排序;
- 使用 variable.group 和有序中位数创建有序条件箱线图;
- 对数据框中的剩余变量重复(循环?)过程。
我想使用上述过程遍历大约 70 个变量,但我被卡住了从tapply
to移动aggregate
,访问数据帧中的每个变量,并对循环序列进行编码。对于下面我的 R 代码中缺乏优雅,请提前道歉:
bpdf = data.frame(group=c("A","A","A","B","B","B","C","C","C"),
x=c(1,1,2,2,3,3,3,4,4),
y=c(7,5,2,9,7,6,3,1,2),
z=c(4,5,2,9,8,9,7,6,7))
sorted.medians = rev(sort(with(bpdf,tapply(bpdf$x,bpdf$group,median))))
boxplot(bpdf$x~factor(bpdf$group,levels=names(sorted.medians)))