我是R的新手,如果没有很清楚地解释,很抱歉。
我需要检查许多回归模型的系数。我想看看我的主要预测因素和潜在协变量的每一个可能的组合。创建一个自定义函数,然后嵌套for循环,我就可以得到我想要的输出。。。完美的唯一的问题是变量的名称没有出现在输出中,这使得读取非常困难。
所有变量都保存在两个列表中,并且这些列表已使用names()
命名。在以前的计算中,名称会自动出现在结果中,但不会出现在此处。下面是一个简单的例子。
感兴趣的变量被收集在一个列表中,然后像这样命名
predictors <- list(df$pred1,
df$pred2,
df$pred3,
)
names(predictors) <- c("Hrs/day reading",
"Hrs/day TV",
"Hrs/day Computer"
)
然后我对我的协变量做了完全相同的处理,留下了另一个名为"的命名列表;协变量";
获取每个组合的系数表
covariate_models_total <- function(pred,
cov){
model <- lm(outcome ~ pred + cov, data = df)
coefs <- summary(model)$coef
return(coefs)
}
for (p in predictors) {
for (c in covariates){
results <- covariate_models_total(p,c)
print(results)
}
}
结果是类似于的表格
Estimate Std. Error t value Pr(>|t|)
(Intercept) 54.6909179143 31.8207606 1.71871812 0.09173122
pred -5.8995651667 3.5564502 -1.65883532 0.10328739
cov -6.2504111266 5.1593890 -1.21146344 0.23130134
这很好,但有了100多个,我需要标签来知道我在看什么。
我试过print(p)
或print(name(p))
的变体。我试着调整函数和循环。理想情况下,pred
和cov
将直接替换为表中的变量名,但我很高兴看到它们直接在上面(就像它们在以前的输出中的显示方式一样(。
我觉得事情应该这么简单,有人能给我指明正确的方向吗?谢谢
将其存储在list
中,而不是print
ing
out <- list()
for (p in predictors) {
for (c in covariates){
results <- covariate_models_total(p,c)
results <- list(results)
names(results) <- paste0(p, "_", c)
out <- c(out, results)
}
}