2013-03-20 7 views
7

この例を取ることができます:値がないところでドットをどのように接続するのですか?

 test=c(1,5,NA,5,4,1,NA,3,3,5,4,2) 

     plot(test,type="l") 

これはテストをプロットしますが、そこに我々は、NASを無視して、私たちはかなりのグラフを得るように、ドットを接続することができる方法をdots.Isを接続していないのだろうか?

答えて

7

欠損値を無視する方法はありません。補間値で置き換える必要があります。

# using base packages only 
plot(approx(test, xout=seq_along(test))$y, type="l") 
# or, using zoo 
library(zoo) 
plot(na.approx(test), type="l") 
+0

ありがとうございます!そして補間は必要ありません。:-)頭がおかしくなってくれてありがとうございます - あなたが予想したユースケースを考慮して私の答えを編集しました。 –

9

一つの選択肢である:

plot(na.omit(test), type = "l") 

あなたは1から行くx軸保持する場合 - その後、length(test)を:

plot(na.omit(cbind(x = seq_along(test), y = test)), type = "l") 
+0

中に欠損値を保持しかし、それは欠損値を削除し、したがって、わずか10と、X軸を作成する別の方法12の値ではなく、12の値を持つx軸を維持したいと思っていました。 –

+0

@JoshuaUlrich次に、x変数を '1:length(x)'として生成するRに頼ることはできません。そのための1つの解決策は、 '1:length(x)'インデックスを自分で作成し、それをデータにバインドし、次にその行列を 'na.omit()'にすることです。それは実際に補間することなくあなたの内挿と同じ結果を与えるはずです - あなたがしたいことが点に参加することだけを望んでいることは本当に必要ありません。 「NA」がある場所にポイントを置くことはもちろん別の問題です。 –

+0

+1とても素敵... –

5

同じスポット

data=data.frame(x=1:12,y=test) 
plot(data) 
lines(data) 
lines(na.omit(data),col=2) 

またはggplot2

ggplot(data,aes(x,y))+geom_point()+geom_line(data=na.omit(data)) 
関連する問題