r语言 - 回归循环



Ciao,我有几列代表分数。我想估计每个分数都是学习时间函数的模型。因此,我想运行尽可能多的模型,因为有SCORE列,所有简单模型都是STUDYTIME的函数。然后我想将 STUDYTIME 的系数存储在行名等于 SCORE 列名的新列中。最后,我不确定如何对线性模型进行聚类,因为每个学生都在数据中两次。

这是我的复制示例。这是我现在拥有的数据:

df <- data.frame(replicate(5, rnorm(10)))
df[1]<-c(1,1,2,2,3,3,4,4,5,5)
colnames(df) <- c('student','studytime', 'score1','score2','score3')

这是我对编码的尝试:

for (i in 1:nrow(df)) {
dfx         <- df[,i]
lm    <- lm(dfx[,3:5] ~ study_time)
resdat[,i] = summary(lm)$coefficients[2]
}

您可以使用简单的lapplysapply函数来执行此操作。

这是 r 代码:

生成数据

df <- data.frame(replicate(5, rnorm(10)))
df[1]<-c(1,1,2,2,3,3,4,4,5,5)
colnames(df) <- c('student','studytime', 'score1','score2','score3')

存储结果

Results <- lapply(df[, -c(1,2)], FUN = function(x) lm(x ~ df$studytime))
Coef <- sapply(Results, FUN = coefficients)

最新更新