R 如何使用模拟数据运行逻辑回归{数据有50个观察值和100个模拟,在1个CSV文件中}

R 如何使用模拟数据运行逻辑回归{数据有50个观察值和100个模拟,在1个CSV文件中},r,R,我试着运行我写的代码,但它没有给我结果 fitlist <- list() for(i in unique(mydata1$Sim)){ dat <- mydata1[mydata1$Sim==i,] tmp <- try(append(fitlist, model1 <- glm(y ~ x1+x2, family = binomial(link = logit), data

我试着运行我写的代码,但它没有给我结果

fitlist <- list()
for(i in unique(mydata1$Sim)){
  dat <- mydata1[mydata1$Sim==i,]
  tmp <- try(append(fitlist, model1 <- glm(y ~ x1+x2, family = binomial(link = logit),
                                           data = dat)))
  if (class(tmp) != "try-error") fitlist <- append(fitlist, tmp)

}

fitlist以下内容应该以一种简单的方式满足问题的要求。
未测试,因为没有数据

sp <- split(mydata1, mydata1$Sim)
model_list <- lapply(sp, function(dat){
  tryCatch(glm(y ~ x1+x2, family = binomial(link = logit), data = dat),
           error = function(e) e)
})

ok <- !sapply(model_list, inherits, 'error')
fitlist <- model_list[ok]

sp您可以发布样本数据吗?请使用
dput(dat)
的输出编辑问题。或者,如果输出的dput(head(dat,20))太大
。我已附上样本数据。感谢仍在运行的代码itI am使用lbreg命令拟合对数二项分布。我试图将fitlist更改为数据帧,但出现此错误。as.data.frame.default(value,stringsAsFactors=FALSE)中出错:无法将类“lbreg”强制为data.frame我试图用于将fitlist更改为dataframe的代码是
library(tidyverse)p%map\u df(as\table)
@RuiBarradas@Seanlove好的,但是在您运行的问题中,
glm
,不是
lbreg
。是的,代码正在工作,所以我的问题是如何将fitlist更改为数据帧。我从glm更改为lbreg的原因是对数二项式的收敛问题。对于
glm
fitlist%>%broom::tidy()%%>%As.data.frame()
。至于
lbreg
,您必须决定要在数据帧中包含返回值的哪些成员,没有现成的函数。