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

R语言中GLM模型指数化相对风险结果与变量名称对应展示的实现方法问询

R语言中GLM模型指数化相对风险结果与变量名称对应展示的实现方法问询

嗨,我完全懂你的烦恼——每次算完指数化的相对风险结果,还要对着之前的输出翻行号对应变量名,太麻烦了对吧?其实解决方法超简单,咱们只需要把模型系数对应的变量名提取出来,和你的结果绑定在一起就行。

你之前的代码已经算出了指数化的结果,但缺了变量名这一环。其实coef(sexrr_modadj_mm)返回的是一个带名称的向量,这些名称就是你要的变量名/因子水平,直接用names()就能提取出来。

给你两种实用的实现方式:

方式一:直接生成带变量名的字符串输出

先提取变量名,再和你生成的结果字符串拼接:

# 提取变量/因子水平名称
var_names <- names(coef(sexrr_modadj_mm))

# 生成你原来的相对风险+置信区间字符串
rr_strings <- paste(round(exp(r.est[,1]), digits = 2), " (", round(exp(r.est[,5]), digits = 2), "-", round(exp(r.est[,6]), digits = 2), ")", sep = "")

# 把变量名和结果拼接在一起
named_rr <- paste(var_names, rr_strings, sep = " ")

# 查看最终结果
named_rr

运行后你就能得到像"(Intercept) 0.24 (0.06-1.01)"这样的输出,完全对应上变量名。

方式二:整理成数据框(更规整,方便后续处理)

如果想要更清晰的表格形式,把结果放进数据框里会更直观:

# 提取变量名
var_names <- names(coef(sexrr_modadj_mm))

# 构建数据框
rr_table <- data.frame(
  变量名称 = var_names,
  相对风险 = round(exp(r.est[,1]), digits = 2),
  置信区间 = paste(round(exp(r.est[,5]), digits = 2), "-", round(exp(r.est[,6]), digits = 2), sep = "")
)

# 可选:把相对风险和置信区间合并成一列
rr_table$风险与置信区间 <- paste(rr_table$相对风险, "(", rr_table$置信区间, ")", sep = "")

# 打印表格
print(rr_table)

这种方式输出的是结构化的表格,不管是控制台查看还是导出成文件都更方便。

本质上就是利用了R中系数向量自带名称的特性,把这个名称和你的计算结果关联起来,就不用再手动对应行号啦~

备注:内容来源于stack exchange,提问作者davidk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:22:42