对于我发布的简单问题道歉,但我是R的新手,我发现很难通过可用的文档找到解决方案。
我只想添加一个平均值作为盒子的点和使用bwplot的胡须图。我见过类似的问题,但他们通常使用ggplot2或其他软件包。
我已经帮助构建了一个带有面板功能的矩形范围来添加到绘图中,所以我怀疑我的当前问题可以通过我的面板功能的进一步添加来解决。
我试图使用panel.average
添加到我的面板功能,但没有运气。使用下面的示例代码,作为下面的示例,我尝试过:
library(lattice)
library(MASS)
data <- Cars93[,c("Manufacturer", "Price")]
testpanel <- function (x,y,...) {
panel.rect(xleft = 0, xright = 5, ybottom = 15, ytop = 25, col="aliceblue", border = 0)
panel.average(x,y, fun=mean, identifier="point") #my attempt to add a point to represent the mean
panel.bwplot(x, y, ...)
}
bwplot(Price ~ Manufacturer,
data=rbind(transform(data, Manufacturer="All"), data[data$Manufacturer=="Chevrolet",]),
panel = testpanel,
pch='|'
)
任何帮助将不胜感激!
答案 0 :(得分:2)
这是bwplot
,Deepayan Sarkar的作者9年前在Rhelp上回答的问题:
panel.mean <- function(x, y, ...) {
tmp <- tapply(x, y, FUN = mean)
panel.points(tmp, seq(tmp), pch = 20, ...)
}
我需要切换x和y值才能让它工作:
panel.mean <- function(x, y, ...) {
tmp <- tapply(y, x, FUN = mean); print(tmp)
panel.points(y=tmp, x=seq_along(tmp), ...)
}
bwplot(Price ~ Manufacturer,
data=rbind(transform(data, Manufacturer="All"), data[data$Manufacturer=="Chevrolet",]),
panel = function(x,y, ...) { panel.bwplot(x,y,...)
panel.mean(x,y, pch='*', col="red", cex=3)
}
)