我使用 effects
在 R 中打包以生成漂亮的效果图。当我的模型中的预测变量之一是一个因子时,该图使用因子标签作为轴刻度标签。在某些情况下,这并不理想,因为可能会缩短因子名称以便于在 Anova 显示中键入和查看,但我想要一个更具可读性的绘图标签。
我尝试将 transform.x
参数用于 plot
,但文档说这仅适用于“数字预测器”,实际上它似乎不起作用(对显示的标签没有影响)。
我特别不想自己更改因子水平名称(即更改数据),因为我有其他原因希望它们保持原样。我只想影响绘图显示,而不是模型本身。
我想要的是能够指定预测变量的因子水平和用作这些因子水平的轴刻度标签的字符串之间的映射。我怎样才能做到这一点?
这是一个简单的例子:
library(effects)
A = rnorm(100)
B = rnorm(100)
C = factor(rep(c("This", "That"), 50))
model = lm(A~B*C)
plot(effect("B:C", model), x.var="C")
产生这个情节:
effect plot http://snag.gy/5mTkJ.jpg
我希望能够将 x 轴刻度标签“This”和“That”更改为我想要的任何内容,而不更改向量 C 中的实际因子水平名称。
最佳答案
不幸的是,没有直接的方法。查看绘图函数:getAnywhere("plot.eff")
。
解决方法如下:
首先创建效果对象:
ef <- effect("B:C", model)
修改ef
中C
的层数:
ef$variables$C$levels <- c("foo", "bar")
levels(ef$x$C) <- c("foo", "bar")
剧情:
plot(ef, x.var = "C")
关于r - 更改 R 中效果图上的因子标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530232/