【发布时间】:2021-01-09 04:05:12
【问题描述】:
我正在尝试创建一个循环,在数据帧的每一行(响应)上针对数据帧外部的预测向量执行 lm。预测变量的值和长度取决于行所属的类别 (df$Group)。 感谢您是否可以帮助我创建一个为每一行执行 lm 的循环,这也将系数保存到单个向量/数据帧中。此外,要通过多个具有相同结构的数据帧运行循环,然后将系数保存到单个数据帧,我应该对代码进行哪些更改? 以下是我尝试过的 - 它不保存系数。
dfList <- list(df,df1,df2)
df <- data.frame(ID=c(1:10),Group=c("A","A","A","A","B","B","B","B","B","B"), T1= rnorm(10, mean=1, sd=1),
T2= rnorm(10, mean=2, sd=1),T3= seq(40,58,by=2),T4= seq(10,28,by=2))
A <- df$ID
B <- df$Group
C <- numeric(length=length(A))
x1 <- c(1:4)
x2 <- c(2:4)
for (i in length(A)){
if(B[i] == "A"){C[i] <- apply(df[,c(3:6)],1,function(y) lm(y~x1)$coefficients[2])[i]}
if(B[i] == "B"){C[i] <- apply(df[,c(4:6)],1,function(y)lm(y~x2)$coefficients[2])[i]}
}
感谢任何帮助! 谢谢!
【问题讨论】: