再见,我有几个代表分数的栏目。我想估计每个分数都是STUDYTIME函数的模型。所以我想运行尽可能多的模型,因为有分数列,所有简单的模型都是STUDYTIME的函数。然后,我希望将STUDYTIME的系数存储在一个新列中,该列的行名与得分列名相等。最后,我不知道如何在线性模型上进行聚类,因为每个学生都有两次数据。
这是我复制的例子。这是我现在掌握的数据:
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]
}
发布于 2018-09-13 09:46:58
您可以使用简单的lapply
和sapply
函数来完成这个任务。
以下是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)
https://stackoverflow.com/questions/52319050
复制相似问题