0

是否可以为 L'abbé 图中的“点”着色?我正在使用 metafor 包。

 # Load package
 library(metafor)

 # Load data
 data(dat.bcg)

 # Code 
 ex <- rma(ai=tpos, bi=tneg, ci=cpos, 
 di=cneg, data=dat.bcg, measure="OR",
 slab=paste(author, year, sep=", "), method="FE")

# L'abbé plot
labbe(ex, transf = exp, ylab="Test group", xlab="Control")

是否可以根据变量为点着色?

Fx 蓝色点表示:

dat.bcg$alloc==random

谢谢你,C。

4

1 回答 1

2

您可以尝试以下方法:

dat.bcg$var[dat.bcg$alloc == "random"] <- "blue"

labbe(ex, transf = exp, ylab = "Test group", xlab = "Control", bg = dat.bcg$var)

在此处输入图像描述

并且没有转换:

labbe(ex, ylab = "Test group", xlab = "Control", bg = dat.bcg$var, grid = TRUE)

在此处输入图像描述

我们可以看到 7 个实例有 7 个蓝点,其中dat.bcg$alloc == "random".

区分点的另一种选择:

labbe(ex, ylab = "Test group", xlab = "Control", grid = TRUE, pch = dat.bcg$alloc)

在此处输入图像描述

要更改所有三个点的颜色,您可以执行以下操作:

dat.bcg$var[dat.bcg$alloc == "random"] <- "blue"
dat.bcg$var[dat.bcg$alloc == "alternate"] <- "green"
dat.bcg$var[dat.bcg$alloc == "systematic"] <- "red"

或者dplyr我们可以使用case_when

library(dplyr)

dat.bcg <- dat.bcg %>% 
  mutate(var = case_when(alloc == "random" ~ "blue",
                         alloc == "alternate" ~ "green",
                         alloc == "systematic" ~ "red",
                         TRUE ~ as.character(NA)))

在此处输入图像描述

于 2018-01-13T08:47:52.400 回答