2016-12-15 10 views
1

1000行のデータごとに回帰を実行するRスクリプトを作成しようとしています。R回帰ループ

また、出力をcsvファイルに保存したいと思います。

データリンク:https://drive.google.com/open?id=0B-W2Dyw4QjoMQ0F1ZFhsdWJORHM

すべてのヘルプは素晴らしいことです!

z <- read.csv("Merge.csv", sep=",", header=TRUE, stringsAsFactors=FALSE) 


co<-matrix(NA, nrow=44, ncol = 7) 

## Regression for mkt returns and 7 variables 
for (i in 5:44){ 
    cat(i) 
    temp <- lm(ret~earningsyld+book2mkt+leverage+corptax+financials+Momentum+lnmktcap, na.action="na.omit", data = z[1000*(i-1)+1:1000*i,]) 
    co[i,]<- summary(temp)$coefficient [2:8,1] 
} 
+0

ループ内で 'cat(i)'を使って、ループの繰り返しを確認してください。また、いくつかの潜在的なエラー: 'naomit'を引用する必要があります。あなたが想像しているのではなく' ata'を 'data'としています。式の各変数の前に 'z $'を付ける必要はありません。私は何が起こっているのかは、それぞれの回帰が40,000行に見えるデータセット全体を実行しているということです。それはしばらく時間がかかります。 – Noah

+0

'data'引数を使うとき、' lm() 'はあなたが描画しているデータセットを知っているので、' z $ 'は必要ありません。代わりに 'ata'を書いたので、' lm() 'はその部分を無視し、' z $ ret'などを見ます。これは、解析したいパーティションだけでなく、データセット内の 'ret'カラム全体を参照します各反復。 – Noah

+0

お返事ありがとうございます。だから、私がz $を削除すると、次のメッセージが表示されます。 "エラーが発生しました。置換の長さ " – Malhuneidi

答えて

0
# Built-in example data 
data("mtcars") 
mtcars <- rbind(mtcars,mtcars,mtcars,mtcars,mtcars,mtcars, 
       mtcars,mtcars,mtcars,mtcars,mtcars) 

# Let's pretend that instead of 1000 rows it's 10, so that I can use builtin data to show you 

co<-matrix(NA, nrow=35, ncol = 1) 

## Regressions 
for (i in 1:floor(nrow(mtcars)/10)){ 
    cat(i) 
    temp <- lm(mpg~cyl, na.action="na.omit", data = mtcars[((i-1)*10)+1:(i*10),]) 
    co[i,] <- summary(temp)$coefficients[2:2,1] 
} 

head(co) 
  [,1] 
[1,] -1.696939 
[2,] -3.461047 
[3,] -2.572180 
[4,] -2.651129 
[5,] -3.023638 
[6,] -2.712391 

私はあなたのインデックスに問題と同様に要約オブジェクトのcoefficients要素の間違ったスペルがあったと信じています。それ以外の問題はデータの問題ですので、それでも問題が解決しない場合は、データを提供してください。

たとえば、データの問題(特異性、すべての欠損値、特定の変異など)が係数の不可視性を引き起こした場合、返されたサマリーのサイズが変更され、ループが中断されます。唯一の解決策は、データを消去したり、モデルを変更して不正なデータを使わないようにすることです。

+0

ありがとうございます。私は信じられないほどRの新しい(ちょうど数時間前にコーディングを始めた)。私はあなたのフィードバックごとにコードを修正しました。基本的には、1つのテーブル内の独立変数のそれぞれについて反復のそれぞれについて係数を得ることができる出力を得たいと考えています。ヘッダーは独立した可変係数であることが好ましい。元のステートメントのデータセットへのリンクを追加しました。ご協力ありがとうございました! – Malhuneidi