10

この例を見てみましょう:

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

      plot(test,type="l")

これはテストをプロットしますが、ドットを接続しません。NAを無視してドットを接続し、きれいなグラフを取得する方法はありますか?

4

4 に答える 4

10

1つのオプションは次のとおりです。

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

1からのx軸を保持したい場合は、次のようにしますlength(test)

plot(na.omit(cbind(x = seq_along(test), y = test)), type = "l")
于 2013-03-20T19:46:24.177 に答える
9

欠落している値を無視する方法はありません。それらを補間値に置き換える必要があります。

# 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")
于 2013-03-20T19:53:37.937 に答える
6

同じ場所で不足している値を保持する別の方法

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))
于 2013-03-20T20:25:33.470 に答える
0

を使用して、前述のソリューションでNAを無視するかna.omit()、NAを妥当な値に置き換えようとします。これにはパッケージimputeTSを使用できます。

たとえば、次のように補間できます。

library(imputeTS)
imp <- na_interpolation(test)
plot(imp, type="l")

あなたは代わりとして平均を取ることができます:

library(imputeTS)
imp <- na_mean(test)
plot(imp, type="l")

代わりに移動平均を取ることもできます。

library(imputeTS)
imp <- na_ma(test)
plot(imp, type="l")

結局のところ、ユースケースに最適なものを使用することは理にかなっています。多くの場合、これはNAを「無視」します。補間/代入は実際の値の推定にすぎず、適切な方法を選択する必要があるためです。

于 2019-05-11T02:23:07.173 に答える