如何使用 R 中的 sjplots 包更改绘图模型上的 yaxis 标签

问题描述

我为我的数据集应用了线性回归 (lm) 模型。我得到了预期的结果(作为值),但输出包含所有类别中的标签名称。 数据集似乎:(只是一个示例数据供参考)

DARM        Val hba_diff
Category1   23  2.5 
Category2   54  3.8
Category3   56  5.2
Category4   89  6.1

应用以下 lm 模型后的结果:

lm(公式 = hba_diff ~ DARM,data = DARM_data)

输出

Predictors       Estimates  CI          p
(Intercept)      0.00      -0.10 – 0.10 0.957
DARM [Category1] 0.23      -0.30 – 0.75 0.398
DARM [Category2] 0.06      -0.25 – 0.37 0.719
DARM [Category3] 1.00      -2.18 – 4.17 0.538
DARM [Category4] -0.84     -2.67 – 1.00 0.372

我需要删除所有输出行中的“DARM”。 请建议一个代码删除输出集中的“DARM”术语。

预期输出

Predictors       Estimates  CI          p
(Intercept)      0.00      -0.10 – 0.10 0.957
Category1        0.23      -0.30 – 0.75 0.398
Category2        0.06      -0.25 – 0.37 0.719
Category3        1.00      -2.18 – 4.17 0.538
Category4        -0.84     -2.67 – 1.00 0.372

解决方法

请在以后提供完整的代码。不确定你是如何得到表格的,我猜你在 tab_model 中使用了 sjplot 函数,所以最简单的方法是提供名称,例如:

library(sjPlot)

df = data.frame(hba_diff=runif(50),DARM = sample(c("Category1","Category2","Category3"),50,replace=TRUE))

fit = lm(hba_diff ~ DARM,data = df)

tab_model(fit,pred.labels = c("Intercept","Category3"))

enter image description here

要绘图,用 ggplot2 做同样的事情(绘图被坐标翻转,所以它是 x 轴):

library(ggplot2)
plot_model(fit) + scale_x_discrete(labels=c("Category2","Category3"))

enter image description here