如何在R中显示回归输出中变量的名称(存储在列表中)



我是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))的变体。我试着调整函数和循环。理想情况下,predcov将直接替换为表中的变量名,但我很高兴看到它们直接在上面(就像它们在以前的输出中的显示方式一样(。

我觉得事情应该这么简单,有人能给我指明正确的方向吗?谢谢

将其存储在list中,而不是printing

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)
}
}

最新更新