首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >堆叠lapply结果

堆叠lapply结果
EN

Stack Overflow用户
提问于 2018-11-22 03:30:07
回答 1查看 39关注 0票数 0

我正在使用以下代码生成数据,并且正在评估一系列变量(covar1和covar2)上的回归模型。我还为系数创建了置信区间,并将它们合并在一起。

我已经检查了这里和其他网站上的各种示例,但我似乎无法实现我想要的。我希望将每个covar的结果堆叠到一个数据帧中,通过covar所属的covar标记每个结果集群(即"covar1“和"covar2")。下面是使用lapply生成数据和结果的代码:

代码语言:javascript
复制
##creating a fake dataset (N=1000, 500 at treated, 500 at control group)
#outcome variable
outcome <- c(rnorm(500, mean = 50, sd = 10),  rnorm(500, mean = 70, sd = 10))

#running variable
running.var <- seq(0, 1, by = .0001)
running.var <- sample(running.var, size = 1000, replace = T)

##Put negative values for the running variable in the control group
running.var[1:500] <- -running.var[1:500]

#treatment indicator (just a binary variable indicating treated and control groups)
treat.ind <- c(rep(0,500), rep(1,500))

#create covariates
set.seed(123)
covar1 <- c(rnorm(500, mean = 50, sd = 10), rnorm(500, mean = 50, sd = 20))
covar2 <- c(rnorm(500, mean = 10, sd = 20), rnorm(500, mean = 10, sd = 30))
data <- data.frame(cbind(outcome, running.var, treat.ind, covar1, covar2))
data$treat.ind <- as.factor(data$treat.ind)

#Bundle the covariates names together
covars <- c("covar1", "covar2")

#loop over them using a convenient feature of the "as.formula" function
models <- lapply(covars, function(x){
  regres <- lm(as.formula(paste(x," ~ running.var + treat.ind",sep = "")), data = d)
  ci <-confint(regres, level=0.95)
  regres_ci <- cbind(summary(regres)$coefficient, ci)
})
names(models) <- covars
print(models)

在正确的方向上的任何推动,或者到我没有遇到的帖子的链接,都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-11-22 03:46:26

你可以使用do.call de第二个参数是一个列表(like in here):

代码语言:javascript
复制
do.call(rbind, models)

我(可能)改进了你的lapply函数。这样,您就可以将估计的参数和变量保存在data.frame

代码语言:javascript
复制
models <- lapply(covars, function(x){
  regres <- lm(as.formula(paste(x," ~ running.var + treat.ind",sep = "")), data = data)
  ci <-confint(regres, level=0.95)
  regres_ci <- data.frame(covar=x,param=rownames(summary(regres)$coefficient),
                          summary(regres)$coefficient, ci)
})

do.call(rbind,models)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53419292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档