私はsmooth.spline()
をフィットさせた後に予測しています。新しいデータにいくつかのNAがあるという問題があります。今私は予測のためにNAを取得しようとしています。しかし、私はそれを働かせることはありません。smooth.splinesのためのNAで新しいデータを予測
私は自分の問題を説明するためにいくつかの再現可能なコードを作りました。 新しいデータと予測が同じ長さになるようにしたい。 loess
モデルでpredict
を使用しているときなど、この問題は発生しませんでした。 x
がNAの場合、自動的にNAをy
に設定します。私は他のモデル(lm
、glm
、..)の予測のためにこの質問を見ましたが、その答えはna.action=na.exclude
で設定されています。
x <- c(1:5, NA, 7:12, NA, 15:19, 22:23)
y <- rnorm(length(x))
y[which(is.na(x))] <-NA
length(y) #20
x.new <- c(x[1:18],20,21,x[19:20])
length(x.new) #22
spl <- smooth.spline(x=x[!is.na(y)], y=y[!is.na(y)], spar=0.001)
spl.pr <- predict(spl, x=x.new[!is.na(x.new)], na.action=na.exclude)
length(spl.pr$y) #20
は私が右predict
例えば内部のNAを除外しない場合は動作しません。また、コマンドを予測するマイ:
> spl.pr <- predict(spl, x=x.new, na.action=na.exclude)
Error in double(n) : vector size cannot be NA
私は私の問題を理解できたと思う。ヘルプは非常に高く評価されます。ありがとう
私はそれを疑った。私は、コマンド内に 'na.action = na.exclude'を使用するとエラーメッセージが表示されなかったので、わかりませんでした。あなたのお勧めの方法はうまくいきます、ありがとう! (私はあなたの答えをupvoted、残念ながら、私はバッジの一定量を獲得するまでは公に表示されません - 私は思う、編集:それは今働いていたようです) – Katharina