您好我想绘制一个显示平均值+标准差的stripplot。我无法显示箱线图,因为我的值少于5,所以我想使用mean和sd。我的问题是我无法计算组中的平均值和sd,而是我得到两个表示在两个组中的方法,并且对于分段表示相同。
require(lattice)
stripplot(l ~ Medium, parameters,
ylab=list(expression("lag phase - h"),cex=1.5),
xlab=list("Medium", cex=1.5),
auto.key=list(columns=2, rectangles=T, points=F, pch=16, at=NULL ),
ylim=c(-2,15),
up=parameters$l+parameters$sd.l,
lo=parameters$l-parameters$sd.l,
panel=function(x,y,up,lo,...){
xj=jitter(as.numeric(x), factor=0.5)
panel.stripplot(xj,y,pch=16 , alpha=0.5 , factor=0.2,
cex=1.2 , ...)
panel.abline(h=0,col="black",...)
panel.arrows(x0=xj, y0=lo,
x1=xj, y1=up,code=3,
angle=90, length=0.05
,alpha=0.5)
panel.dotplot(x=x, y=tapply(y,x,mean), col="red")
panel.segments(x0=x,x1=x,y0=mean(y)-sd(y),y1=mean(y)+sd(y),col="red")
}
)
答案 0 :(得分:0)
如果您使用Medium
,~l|Medium
而不是l~Medium
,则可以计算面板函数中每个级别的均值和sd。
例如
stripplot(~Sepal.Length|Species,iris,
panel=function(x,y,...) {
m=mean(x)
panel.stripplot(x,y,...)
panel.stripplot(m,y,pch="|",cex=2,col=2)
}
)
否则,您可以使用stripplot
或by
或类似内容计算aggregate
之外的每个级别的均值和sd,然后将其添加到图中。