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
,您必须决定要在数据帧中包含返回值的哪些成员,没有现成的函数。