R 绘制时间序列中缺少值的向量

R 绘制时间序列中缺少值的向量,r,vector,time-series,R,Vector,Time Series,我试图把这个表格画成平行线,y轴的范围是-50到150,x轴是向量“天”。每个向量(X1到X8)都有很多缺少的值,所以我只想绘制现有的值,并用线连接它们(对于每个向量) 这是我用来尝试绘制数据的命令 plot(dataframe,plot.type="single",ylim=c(-50,150)) 这就是我试图绘制的数据帧 Days X1 X2 X3 X4 X5 X6 X7 X8 1 600 -15 -18 NA 14 NA NA NA NA 2 620 N

我试图把这个表格画成平行线,y轴的范围是-50到150,x轴是向量“天”。每个向量(X1到X8)都有很多缺少的值,所以我只想绘制现有的值,并用线连接它们(对于每个向量)

这是我用来尝试绘制数据的命令

 plot(dataframe,plot.type="single",ylim=c(-50,150))
这就是我试图绘制的数据帧

     Days  X1  X2 X3 X4 X5 X6 X7 X8
1     600 -15 -18 NA 14 NA NA NA NA
2     620  NA  NA NA NA NA NA NA 21
3     660   0  NA NA NA NA NA NA NA
4     700  NA   8 NA NA NA NA NA 33
5     760  NA  NA NA  8 NA NA NA NA
6     780   0  NA NA NA NA NA NA NA
7     800  NA  11 NA NA 65 NA NA NA
8     820  NA  NA NA NA NA NA NA 29
9     840  NA  NA NA NA 85 NA NA NA
10    880  NA  NA NA  5 75 NA NA NA
11    900  NA  NA NA NA NA NA 10 NA
12    920  NA  NA 12 NA NA NA NA 57
13    940  NA  22 NA NA NA NA NA NA
14    960  NA  NA 12 NA NA NA NA NA
15   1000  NA  NA 14 NA NA NA NA NA
16   1060  NA  NA 14 NA NA NA NA NA
17   1120  NA  NA 11 NA NA NA NA NA
但我得到的只是一扇近乎空白的窗户

这将是一个很好的例子,说明我试图得到什么样的情节:

有什么想法吗?

试试这个:

matplot(dat[1],dat[-1],type="n")
Map(function(x,y) lines(x[!is.na(y)],y[!is.na(y)]),dat[1],dat[-1])
结果:

matplot
基本上设置绘图区域的边界,然后
Map
调用依次绘制每一行,删除
NA

为了重现结果,这是
dat
数据集:

dat <- data.frame(Days = c(600L, 620L, 660L, 700L, 760L, 780L, 800L, 820L, 840L, 880L, 900L, 920L, 940L, 960L, 1000L, 1060L, 1120L
), X1 = c(-15L, NA, 0L, NA, NA, 0L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), X2 = c(-18L, NA, NA, 8L, NA, NA, 11L, NA, NA, 
NA, NA, NA, 22L, NA, NA, NA, NA), X3 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 12L, NA, 12L, 14L, 14L, 11L), X4 = c(14L, 
NA, NA, NA, 8L, NA, NA, NA, NA, 5L, NA, NA, NA, NA, NA, NA, NA), X5 = c(NA, NA, NA, NA, NA, NA, 65L, NA, 85L, 75L, NA, NA, 
NA, NA, NA, NA, NA), X6 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), X7 = c(NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, 10L, NA, NA, NA, NA, NA, NA), X8 = c(NA, 21L, NA, 33L, NA, NA, NA, 29L, NA, NA, NA, 57L, NA, NA, NA, NA, NA))

dat谢谢,我知道了这个概念,但我不太确定dat[1]和dat[-1]应该是什么。我就是这样做的,我仍然得到一个空白屏幕:matplot(Days,X1,type=“n”)映射(函数(x,y)行(x[!is.na(y)],y[!is.na(y)],Days,X1),再次感谢。@Oposum-
dat[1]
是数据集的第一列,可以用
dat[“Days”]
-
dat[-1]代替
数据集的每一列都是第一列“天”之外的列(第一列的负数=1作为索引)。dat是函数吗?当我尝试R中的行时,我得到消息:as.matrix(x)中的错误:object'dat'notfound@Oposum-
dat
就是我在代码中调用的
dataframe
的名称。它是一个
data.frame
对象,包含您的数据。尝试
dataframe[1]
dataframe[-1]
以使用您自己的代码查看结果。@Oposum-我已将导入
dat
的代码添加到答案中,这样您至少可以有一个完整的位示例进行测试。