如何使用两个数据帧(一个用于因变量,另一个用于自变量)为 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
}
}
我觉得我的代码有点不对劲,但不知道如何让它工作。我正在尝试将一个数据框中的所有列用作独立变量,并将另一个数据框中的所有列用作相关变量(运行 多个单变量模型)我将不胜感激任何建议。
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
}
}