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

标签 r

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

我觉得这应该很简单,有人能指出我正确的方向吗?谢谢!

最佳答案

将其存储在列表中,而不是打印

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/

相关文章:

r - R中的3D绘图-使用颜色的第4维

r - R 表达式中的求和项

r - 将两个不规则长度的列表相乘

r - 使用 `` magrittr : :`%>%` `` 时 magrittr 管道出错

r - 在ggplot中绘制平滑正态分布的最佳方法

python - 对数据框列进行排序/对齐,以便行字符串值与主列表列匹配,如果列中不匹配则打印 0

r - PCA实现后如何提取行名称?

r - 如何在 fread 中指定变量文件名

按数值向量中指定的数字重复向量的每个元素

r - 如何将 ggplot 和 dplyr 组合成一个函数?