我是 R 新手,如果没有解释得很清楚,抱歉。
我需要检查许多回归模型的系数。我想查看主要预测变量和潜在协变量的所有可能组合。创建一个自定义函数,然后创建一个嵌套的 for 循环,我能够获得我想要的输出......完美!唯一的问题是变量的名称不会出现在输出中,使其极难阅读。
所有变量都保存在 2 个列表中,并且这些列表已使用 names()
命名。在之前的计算中,名称会自动出现在结果中,但这里不会。下面是一个简化的示例。
感兴趣的变量被收集在一个列表中,然后像这样命名。
predictors <- list(df$pred1,
df$pred2,
df$pred3,
)
names(predictors) <- c("Hrs/day reading",
"Hrs/day TV",
"Hrs/day Computer"
)
然后我对我的协变量做了完全相同的操作,留下了另一个名为“Covariates”的命名列表
获取每个组合的系数表
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
将直接替换为表中的变量名称,但我很高兴在上面直接看到它们(就像它们在之前的输出中的显示方式一样) )。
我觉得这应该很简单,有人能指出我正确的方向吗?谢谢!
最佳答案
将其存储在列表
中,而不是打印
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)
}
}
关于r - 如何在 R 的回归输出中显示变量名称(存储在列表中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68307052/