让我们举个例子:
test=c(1,5,NA,5,4,1,NA,3,3,5,4,2)
plot(test,type="l")
Run Code Online (Sandbox Code Playgroud)
这将绘制测试,但不会连接点.有没有办法我们可以忽略NA并连接点,所以我们得到漂亮的图形?
Rei*_*son 10
一种选择是:
plot(na.omit(test), type = "l")
Run Code Online (Sandbox Code Playgroud)
如果你想保持x轴从1开始 - length(test)那么:
plot(na.omit(cbind(x = seq_along(test), y = test)), type = "l")
Run Code Online (Sandbox Code Playgroud)
没有办法忽略缺失的值.您需要用插值替换它们.
# using base packages only
plot(approx(test, xout=seq_along(test))$y, type="l")
# or, using zoo
library(zoo)
plot(na.approx(test), type="l")
Run Code Online (Sandbox Code Playgroud)
另一种在相同位置保留缺失值的方法
data=data.frame(x=1:12,y=test)
plot(data)
lines(data)
lines(na.omit(data),col=2)
Run Code Online (Sandbox Code Playgroud)
或者在ggplot2中
ggplot(data,aes(x,y))+geom_point()+geom_line(data=na.omit(data))
Run Code Online (Sandbox Code Playgroud)