You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言自定义线性回归函数提取T统计量的select语法问题

解决方法

summary.lm()返回的系数矩阵转成数据框后,T统计量对应的列名为t.value,你只需在select参数中增加该列,同时调整后续列表转数据框的列数即可。

核心修改点

  1. 原末尾的选择语句修改为:
dplyr::select(Estimate, t.value, `Pr...t..`)
  1. 后续生成最终数据框时,将ncol=2调整为ncol=3,同时补全原有语法缺失的右括号,可自定义列名提升可读性。

完整可运行代码

library(dplyr)

df <- mtcars
df <- df %>% 
  select(1,2,3,4,5,6,7)

factors <- c("mpg", "cyl", "disp", "hp", "drat", "wt")

models <- lapply(paste(factors, ' ~  mpg + cyl + disp + hp + drat + wt -',factors),
                 function(f){ lm(as.formula(f), data = df) %>%
                     summary() %>%
                     "$"(coef) %>%
                     data.frame() %>%
                     filter(rownames(.) == "(Intercept)") %>%
                     # 新增t.value列提取T统计量
                     dplyr::select(Estimate, t.value, `Pr...t..`)}
)


final <- matrix(unlist(models), ncol = 3, byrow = T) %>%
  data.frame(row.names = factors,
             # 自定义列名更清晰
             col.names = c("截距估计值", "T统计量", "P值"))

如果需要确认所有可用的列名,可在select语句前加一行print(colnames(.))运行即可查看当前系数数据框的所有列标识。

内容的提问来源于stack exchange,提问作者brockgallagher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:45:02