我有一个数据集,其中缺失的数据表示为-999
。数据从0到1。
我想将数据绘制为线图,但我不希望有效数字连接到缺失的数据。例如,如果我有
x = c(0.29, 0.3, -999, 0.31, 0.4)
我想让这条线从0.29变为0.3,打破缺失的数据,再次在0.31,0.4之间重新开始。
假设上述数据位于文件x.txt中,我尝试执行以下操作:
x1 = read.table('x.txt', na.strings=c("-999."))
plot(x1, type='l')
但它没有做我想要的。
答案 0 :(得分:4)
将-999
替换为NA
:
is.na(x) <- (x == -999)
plot(x, type="l")
这就是你想要的吗?
答案 1 :(得分:2)
将-999
更改为NA
的另一种方法是:
x[x==-999] = NA
plot(x, type="l")
这和@Joshua的答案结果相同,但如果你是R的新手,可能会更清楚。
答案 2 :(得分:0)
你没有说它的作用以及它与你想要的不相符。
您可能遇到的一个问题是read.table返回一个数据框,因此在您的代码中,它试图绘制数据框,而不是数据框中的x列。会发生什么取决于您的数据框最终会有多少列(我们无法从您的示例中猜出)。
如果恰好有2列,则会创建常规散点图(但选项可能无法正确传递)。如果x1只有一列,则会创建一个条带图,这与为plot.default命令提供单个向量时创建的散点图有很大不同。
所以也许
plot( x1[[1]], type='l' )
或类似的东西就是你想要的。
如果没有,请在阅读后向我们展示您的数据框:
summary(x1)
str(x1)