0
我想通過循環遍歷包含響應變量(dat_prob)的數據集中的列來運行glmer。我使用的代碼如下,從另一個stackoverflow問題(Looping through columns in R)研究的代碼改編而來。循環通過列glmer
其代碼:
dat_y<-(dat[,c(2:1130)])
dat_x<-(dat[,c(1)])
models <- list()
#
for(i in names(dat_y)){
y <- dat_y[i]
model[[i]] = lm(y~dat_x)
}
我的代碼:
dat_prob<-(probs[,c(108:188)])
dat_age<-(probs[,c(12)])
dat_dist<-(probs[,c(20)])
fyearcap=(probs[,c(25)])
fstation=(probs[,c(22)])
fnetnum=(probs[,c(23)])
fdepth=(probs[,c(24)])
models <- list()
#
for(i in names(dat_prob)){
y <- dat_prob[i]
y2=as.vector(y)
model[[i]] = glmer(y ~ dat_age * dat_dist + (1|fyearcap) + (1|fstation)+
(1|fnetnum)+ (1|fdepth),family=binomial,REML=TRUE)
}
我收到此錯誤,類似錯誤的超鏈接的問題的答覆:
Error in model.frame.default(drop.unused.levels = TRUE, formula = y ~ :
invalid type (list) for variable 'y'
我一直通過這個工作數小時,現在無法通過樹木看到森林。
任何幫助表示讚賞。
你要放一切都在一個更好的data.frame並迭代它。或者,你可以預先構造公式(不需要對數據進行子集化)並將其傳遞給'glmer'函數。您可以使用'sapply'或'lapply'瀏覽公式列表。 –