R 绘制时间序列中缺少值的向量
我试图把这个表格画成平行线,y轴的范围是-50到150,x轴是向量“天”。每个向量(X1到X8)都有很多缺少的值,所以我只想绘制现有的值,并用线连接它们(对于每个向量) 这是我用来尝试绘制数据的命令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
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
的代码添加到答案中,这样您至少可以有一个完整的位示例进行测试。