r中的线图忽略了丢失的数据

时间:2011-02-07 15:13:36

标签: r plot

我有一个数据集,其中缺失的数据表示为-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')

但它没有做我想要的。

3 个答案:

答案 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)