我有绘制图表的功能。我的价值为零,与NA类似。我不想在计算平均值时包含它。另外,我不想包含在图表中。我们可以给出一些空间,而不是零值。请指教。
x <- c(579, 0, 581, 610, 830, 828, 592, 651, 596, 596, 591, 581, 587, 594, 604, 606, 447, 434, 445)
drawGraph <- function(x, y, z) {
g_range <- range(0,x)
#is.na(x) <- (x == 0)
plot(x, type="o", col="blue", ylim=g_range,axes=FALSE, ann=FALSE)
box()
axis(1, at=1:length(x), lab=FALSE)
text(1:length(x), par("usr")[3] - 2, srt=45, adj=1.2, labels=y, xpd=T, cex=0.3)
scale=round(max(x)/10,digits=0)
axis(2, las=1, at=scale*0:g_range[2], cex.axis=0.3)
main_title<-as.expression(z)
MEANLIMIT <- seq(length=length(x), from=mean(x), by=0)
ULIMIT <- seq(length=length(x), from=(mean(x)*2.66), by=0)
LLIMIT <- seq(length=length(x), from=(mean(x)/2.66), by=0)
lines(MEANLIMIT, type="l", pch=2, lty=2, col="grey")
lines(ULIMIT, type="l", pch=2, lty=2, col="red")
lines(LLIMIT, type="l", pch=2, lty=2, col="grey")
title(main=main_title, col.main="red", font.main=4)
title(xlab="Build", col.lab=rgb(0,0.5,0))
title(ylab="MS", col.lab=rgb(0,0.5,0))
legend("topright", g_range[2], main_title, cex=0.8, col=c("blue"), pch=21, lty=1);
}
答案 0 :(得分:1)
我相信你的意思是:
x[x==0]<-NA
在计算均值时,您需要将na.rm=TRUE
作为额外参数包含。
答案 1 :(得分:1)
对于可重现的部分代码,首先将缺失值编码为NA
:
x <- c(579, 0, 581, 610, 830, 828, 592, 651, 596, 596, 591, 581, 587, 594, 604, 606, 447, 434, 445)
x[x==0] <- NA
接下来用未分解的过度绘制的线绘制它,你需要从结果和x轴索引缺失值:
plot(which(!is.na(x)),x[!is.na(x)], type="o", col="blue",axes=FALSE, ann=FALSE)
但是你的例子不是很可重复。你给我们一个x对象和一个还需要y和z对象的函数。有关制作正确可重复示例的说明,请参阅: How to make a great R reproducible example?