如何连接缺少值的点?

hya*_*yat 10 plot r

让我们举个例子:

       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)


Jos*_*ich 9

没有办法忽略缺失的值.您需要用插值替换它们.

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


use*_*975 6

另一种在相同位置保留缺失值的方法

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)