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
相关产品推荐
相关产品推荐

