Ich versuche ein R-Skript zu schreiben, das für 1000 Datenzeilen eine Regression durchläuft.R Regressionsschleife
Ich möchte auch die Ausgabe in eine CSV-Datei speichern.
Data Link: https://drive.google.com/open?id=0B-W2Dyw4QjoMQ0F1ZFhsdWJORHM
Jede Hilfe wäre toll!
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]
}
Probieren Sie 'cat (i)' in Ihrer Schleife aus, um zu sehen, auf welcher Iteration Ihre Schleife läuft. Auch einige potentielle Fehler: "naomit" sollte zitiert werden, und Sie haben 'ata' anstelle dessen, was ich mir vorstelle, sollen' Daten' sein. Sie müssen nicht 'z $' vor jeder Variablen in der Formel haben. Ich kann wetten, dass jede Regression den gesamten Datensatz ausführt, der 40.000 Zeilen zu sein scheint. Das wird eine Weile dauern. – Noah
Wenn Sie ein Argument 'data' verwenden, brauchen Sie' z $ 'nicht, weil' lm() 'weiß, von welchem Datensatz Sie zeichnen. Da Sie stattdessen "ata" geschrieben haben, ignoriert 'lm()' diesen Teil und sieht nur 'z $ ret' usw., was sich auf die gesamte Spalte" ret "in Ihrem Dataset bezieht, nicht nur auf die Partition, in der Sie analysieren möchten jede Iteration. – Noah
Vielen Dank für Ihre Antwort. Wenn ich also z $ entferne, erhalte ich die folgende Meldung (Aktualisierter Code oben) "Fehler in co [i,] <- Zusammenfassung (temp) $ coefficent [2: 8, 1]: Die Anzahl der zu ersetzenden Elemente ist kein Vielfaches der Ersetzungslänge " – Malhuneidi