如何使用两个数据帧(一个用于因变量,另一个用于自变量)为 glm 创建双循环?

How to make a double loop for glm, using two data frames (one for dependent and another for independent variables)?

我觉得我的代码有点不对劲,但不知道如何让它工作。我正在尝试将一个数据框中的所有列用作独立变量,并将另一个数据框中的所有列用作相关变量(运行 多个单变量模型)我将不胜感激任何建议。

A <- as.data.frame( matrix(rnorm(1:(250*4)), ncol = 4) )
colnames(a) <- paste0("A", 1:ncol(a))
B <- as.data.frame( matrix(rnorm(1:(250*6)), ncol = 6) )
model_<-list()
results_<-list()
for (i in 1:ncol(A)){
  for (j in 1:ncol(B)){
    model_<-glm(A[,i]~B[,j], family=quasipoisson){
      results_<-lapply(model_, function(x) anova(x, test="F"))
    }
  }
}

您可以初始化固定长度的列表。跟踪索引以将数据存储在列表中。

A <- as.data.frame( matrix(abs(rnorm(1:(250*4))), ncol = 4) )
colnames(A) <- paste0("A", 1:ncol(A))
B <- as.data.frame( matrix(abs(rnorm(1:(250*6))), ncol = 6) )
model_<- vector('list', ncol(A) * ncol(B))
results_<- vector('list', ncol(A) * ncol(B))
k <- 1

for (i in 1:ncol(A)){
  for (j in 1:ncol(B)){
    model_[[k]] <-glm(A[,i]~B[,j], family=quasipoisson)
    results_[[k]] <-anova(model_[[k]], test="F")
    k <- k + 1
  }
}