我正在尝试编写一个R脚本,该脚本将通过每1000行数据进行回归运行。
我也想将输出存储到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]
}
# 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
元素的拼写不正确。任何其他问题都将是数据问题,因此,如果您在此之后仍然有问题,请务必提供数据。
例如,如果数据中存在问题(奇异性,所有缺失值,没有识别变化等)会导致系数的不可估量性,则它将改变返回的摘要的大小并打破循环。唯一的解决方案是清洁数据或更改模型以避免使用不良数据。