私は回帰を実行し、結果を所望の方法で返すカスタム関数を持っています。この関数の名前は "reg.fun"です。rollapply内でカスタム関数を使用する方法
results <- dt[ ,reg.fun(.SD, depvar="Y", indepvars=c("X1", "X2")),
.SDcols=c("Y", "X1", "X2"), by = id]
上記のコードは、このような出力を生成します:それはちょうど私の所望の方法での回帰結果を報告している)私は "を使用するために、データテーブルでそれを使用しています。例えば、私はそのようなコードを実行することができますグループ機能によって。
id X1coef X2coef X1tstat X2tstat ...other results...
A 0.0418 0.1194 2.65 3.56 ....
B 0.7903 -0.554 2.75 4.59 .....
これは完全に動作し、目的のテーブルに結果を表示します。今、rollapply関数を使用して、同じウィンドウをロールウィンドウで実行したいと考えています。私が書くことはこれです:match.funで
エラー(FUN): 「reg.fun(.SD、depvar =「Yここ
regress <- dt[ ,rollapply(.SD, width = 3, reg.fun(.SD, depvar="Y" indepvars=c("X1","X2"))), .SDcols = c("Y", "X1", "X2"), by = id]
は、私は今、取得エラーです」indepvars = Cの( 『X1』、 『X2』))」関数ではなく、文字や記号
理想的には、私は同じ上記の表を生成するが、現在複数の行とのID Aおよびid B、私は回帰ウィンドウで回帰を実行したいからです。このように気にいら:このコンテキストreg.funにrollapplyための機能として考慮されていない理由
window id X1coef X2coef X1tstat X2tstat ...other results...
1-3 A xxx xxx xxx xxx ....
2-5 A xxx xxx xxx xxx
3-6 A xxx xxx xxx xxx
...
1-3 B xxx xxx xxx xxx .....
2-5 B xxx xxx xxx xxx
3-6 B xxx xxx xxx xxx
私は見つけることができません。
これは私の最初のRプロジェクトですので、私は多すぎるかもしれないことを知っています。何か問題があるかどうかを教えてもらえますか?そうでない場合、正しい方向性は何ですか?行く?
小さな再現可能な例と予想される出力を示してください。 – akrun
結果の一部の出力を回帰の期待される出力に投稿できますか? – Llopis
は(かなり明確に見えた)エラーメッセージを再表示するには: 'match.fun'-関数は、関数または関数の名前を与えられていなかったのではなく表現またはコールを与えられました。私はまたあなたがそこに「内装」「SD」を残すことができないと思う。 rollapplyのFUN引数は、 '.SD'の結果から抽出されたデータのパーセルを取得します。私の選択肢では、3行のデータを持つ多くの「回帰」を行うのはむしろ愚かなようです。 –