r - 更改 R 中效果图上的因子标签

标签 r plot effects

我使用 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) 

修改efC的层数:

ef$variables$C$levels <- c("foo", "bar")
levels(ef$x$C) <- c("foo", "bar")

剧情:

plot(ef, x.var = "C")

enter image description here

关于r - 更改 R 中效果图上的因子标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530232/

相关文章:

r - R中的替代和引用有什么区别

r - 在图中显示 "for all"(∀) 符号

javascript - Jquery 循环浏览多个图像并一次显示 3 个图像

r - 是否可以更新 R 中的晶格面板?

r - 从图中删除线

javascript - 脚本性的blindUp/blindDown问题

android - GridView 里面的 CardView 有点击效果

使用 tm() 从 R 中的语料库中删除非英语文本

roxygen2 未正确生成命名空间

r - 忽略 x 标签对齐与拼凑中的多个图 : is this possible?