我有1000个数据集,我已使用对数二项软件包(lbreg)进行了分析,但结果在列表中,并且我试图将其转换为数据框。我有一个代码,将提供该列表的样子,因为该列表包含1000个数据集的每个输出23个元素
我尝试了很多事情,但是没有进行转换,所以我弄清楚了系数的压缩方式,但是现在我需要将它们打包一次而不是进行1000次
library(lbreg)
nsim = 1000
for(k in 1:nsim){
dat <- mydata1[mydata1$Sim == k,]
sp <- split(mydata1, mydata1$Sim)
model_list <- lapply(sp, function(dat){
tryCatch(model1 <- lbreg(y ~ x1+x2, family = binomial(link = log), data = dat),
error = function(e) e)
})
}
ok <- !sapply(model_list, inherits, 'error')
fitlist <- model_list[ok]
我尝试使用
data.frame(matrix(unlist(fitlist), nrow=1000, byrow=T),stringsAsFactors=FALSE)
但是失败了。
如果我这样做,我会得到系数,但要获得所有系数,我必须做多达1000次
data.frame(coef(fitlist$`1`), coef(fitlist$`2`), coef(fitlist$`3`), coef(fitlist$`4`), coef(fitlist$`4`), coef(fitlist$`5`))
对于数据集,如果要检出 https://github.com/Seanlove89/logitdata
答案 0 :(得分:0)
#Using base R
do.call("rbind",lapply(fitlist, function(x) data.frame(t(coef(x)))))
#or using `purrr`
purrr::map_df(set_names(fitlist, nm=1:length(lstfit)),
~data.frame(t(coef(.x))),
.id = "model")