2014-07-23 119 views
-2

我有两个列表这样多个箱图ř

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,等等等等的差异的手段)?

非常感谢,

+0

你怎么在这里定义“差异”?你怎么分别绘制'x'和'y'的盒子图? – MrFlick

回答

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)) 

当然会只有一个boxplot,因为这四个组中的每一个只会有一个差异。观测样本中平均值的差异是单一值。它本身并不具有均值或标准差。这是因为您无法计算列表中的成对差异,因为每组中的数字向量不同。