如何使用R中combn函数输出重命名线性回归拟合结果列表
实现步骤
你可以单独生成两两列组合的名称向量,给回归列表命名后合并数据即可,完整可运行代码如下:
完整代码
library(dplyr) library(purrr) # 1. 提取参与计算的列(排除第一列) calc_cols <- names(data)[-1] # 2. 生成两两组合的标识名,格式为「因变量~自变量」方便识别 comb_names <- combn(calc_cols, 2, FUN = \(x) paste0(x[2], "~", x[1])) # 3. 生成第一阶段回归模型列表 firstStage <- combn(calc_cols, 2, FUN = \(x) { lm(reformulate(x[1], response = x[2]), data = data) }, simplify = FALSE) # 4. 给回归列表设置名称 names(firstStage) <- comb_names # 5. 提取拟合值合并为宽表,列名直接使用对应的回归组合名 firstStageFittedValues <- firstStage %>% map(pluck, "fitted.values") %>% bind_cols()
补充说明
如果你需要长格式的结果(一列存储拟合值,一列存储对应的回归组合标识),可以将最后一步替换为:
firstStageFittedValues_long <- firstStage %>% map_dfr(pluck, "fitted.values", .id = "regression_group")
内容的提问来源于stack exchange,提问作者user113156
相关产品推荐
相关产品推荐

