我有以下数据框,“子集”
Time A B C
2016-10-07 06:16:46 NA NA 41
2016-10-07 06:26:27 40 39 42
2016-10-07 06:38:23 NA 40 NA
2016-10-07 06:41:06 42 42 44
2016-10-07 06:41:06 NA 42 44
2016-10-07 06:41:06 NA 42 44
2016-10-07 06:41:07 44 43 48
2016-10-07 06:41:41 NA 43 48
2016-10-07 06:42:44 45 42 48
2016-10-07 06:48:40 46 45 48
我想要一个图,其中“时间”是 x 轴,“A”是一条线,“B”和“C”是点。
但是,当我绘制此图时,“A”出现的唯一一条线是连接最后 2 个点(45 和 46)的那条线,因为它们是“A”中仅有的 2 个连续值。该图忽略了“A”值之间的 NA,而不是通过 NA 连接这些值的线。为此,我使用以下代码:
plot(subset$Time,subset$A,type="l",ylim=c(min(subset$B,na.rm=TRUE)-5,max(subset$C,na.rm=TRUE)+5),xlim=c(as.POSIXct(min(subset$Time)),as.POSIXct(max(subset$Time))))
lines(subset$Time,subset$B,type="p",col=27)
lines(subset$Time,subset$C,type="p",col=134)
我已经尝试过诸如 na.omit() 或 na.approx() 之类的解决方案,但是这些解决方案似乎只有在我在独立绘图中单独绘制“A”时才有效,它们似乎无法结合使用“时间”和“B”和“C”都在同一个情节中。
最佳答案
您可以使用索引而不是 na.omit()
:像这样应该可以做到:
plot(subset$Time[!is.na(subset$A)],subset$A[!is.na(subset$A)],type="l")
# with your xlim and ylim, of course
lines(subset$Time,subset$B,type="p",col=27)
lines(subset$Time,subset$C,type="p",col=134)
关于R - 绘制一条缺少 NA 值的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42590545/