以下作品,给出3个与线连接的点。
plot(c(1,7,12), c(0,0,2),type="b")
然而,这不起作用(它绘制点,但没有连接线,没有任何警告或错误)
t<-data.frame(x=1:20,y=c(0,NA, NA, NA, NA, NA, 0, NA, NA, NA, NA, 2, NA, NA, NA, NA, NA, NA, NA, NA))
plot(t$x, t$y,type="b")
为什么?是因为数据框中的NA
吗?我似乎无法找到任何参考。
答案 0 :(得分:3)
R不会绘制NA的点,也不会绘制具有将它们分开的点之间的连接。
如果您的向量中有NA并且您希望R跳过它们,那么一种解决方案就是删除这些行:
d<-data.frame(x=1:20,y=c(0,NA, NA, NA, NA, NA, 0, NA, NA, NA, NA, 2, NA, NA, NA, NA, NA, NA, NA, NA))
d2 <- d[!(is.na(df$y)), ]
plot(d2$x, d2$y, type="b")
(另外,t
不是R变量的好名称,因为它已经是R中的一个函数,一个转换矩阵的函数。)
答案 1 :(得分:3)
这是预期的,有记录的,并且(当你需要绘制带有中断的行时)R&#39; lines()
函数的理想的行为。来自?lines
帮助页面:
坐标可以包含“NA”值。如果一个点包含'NA' 在'x'或'y'值中,它从图中省略,并且 这些点不会绘制线条。因此缺少价值 可以用来实现细分。
要获得各点之间的线,只需删除y
的值为NA
的点:
d <- data.frame(x=1:20,
y=c(0,NA,NA,NA,NA,NA,0,NA,NA,NA,NA,2,NA,NA,NA,NA,NA,NA,NA,NA))
plot(y ~ x, data = d, type = "b", subset = !is.na(y))