Rでpredict()関数を用いて、モデルからデータの予測を行おうとした際に、以下のメッセージが出たので、その解決方法を備忘録として記載。
下記は、2018年の日経平均価格と、2018年のUSD/JPYを元にモデルを作成し、2019年のUSD/JPYのデータから2019年の日経平均価格を予測できるかを試しています。
> m <- lm(N225_2018 ~ USD_2018) > test <- predict(m, USD_2019) eval(predvars, data, env) でエラー: 数値の 'envir' 引数の長さが 1 ではありません
原因
(概要何か書こうと思ったけど、何も思いつかなかった。)
predict関数は、対象となる因子(予測の元となるデータ)はdata.frameでないといけません。
冒頭の例は、ベクトルに対してpredictを使用したためエラーとなりました。
解決方法
as.data.frameを用いてdata.frame型にしましょう。
> test <- predict(m, as.data.frame(N225_vec))
>
特に出力は出ていませんが、エラーもなく無事うまく行きました。