多个箱图R.

时间:2014-07-23 16:34:14

标签: r boxplot

我有两个这样的列表

head(x)

 [[1]] 30.0 28.9 28.9 
 [[2]] 29.4 29.4 29.4 
 [[3]] 27.2 28.3 
 [[4]] 27.8 30.0 27.2 28.3 28.9 28.3 27.8 

head(y)

 [[1]] 28.9 28.9 
 [[2]] 29.4 
 [[3]] 28.9 30.0 27.2 28.3 
 [[4]] 27.2 28.3 28.9 28.3 27.8 

x和y具有相同的长度,但是对于每个列表条目([[1]],[[2]]]等,元素的数量可以变化。

我可以分别制作x和y的箱形图

boxplot(x)
boxplot(y)

但我怎么能做他们差异的盒子图(对于每个列表条目,我有一个平均值,sd等等,因为手段的差异)?

非常感谢,

1 个答案:

答案 0 :(得分:1)

所以如果您的数据看起来像这样

x<-list(
 c(30.0, 28.9, 28.9 ),
 c(29.4, 29.4, 29.4 ),
 c(27.2, 28.3 ),
 c(27.8, 30.0, 27.2, 28.3, 28.9, 28.3, 27.8 )
)

y<-list(
 c(28.9, 28.9 ),
 c(29.4 ),
 c(28.9, 30.0, 27.2, 28.3  ),
 c(27.2, 28.3, 28.9, 28.3, 27.8 )
)

然后你可以使用

制作一组集合之间的差异
boxplot(mapply(function(x,y) {mean(x)-mean(y)}, x, y))

当然这只有一个箱图,因为4组中的每一组只有一个平均值差异。观察样品中平均值的差异是单个值。它本身没有平均值或标准偏差。这是因为您无法计算列表中的成对差异,因为每个集合中的数字向量不同。