我有一个数据框,我想在小提琴图中绘制,其中观察结果分为两组:[va_AC == 1] or [va_AC > 1]
。
有没有办法在不向df添加新列的情况下为其分配组?
ggplot(df) +
geom.violin(aes(x=[va_AC == 1] or [va_AC > 1],
y=g_AD))
答案 0 :(得分:4)
如果您不想更改初始数据集,可以在管道工作流程中执行此操作,这样就无法更改环境中的df
对象。在这里,我使用case_when
来选择拆分(虽然我确定很多其他方式)。
#create reproducible data
df <- data.frame(va_AC = c(rep(1,20), runif(80, 1.0001, 100)),
g_AD = rnorm(100,25,5))
library(dplyr)
#combine in a pipe
df %>%
#create new grouped variable
mutate(split = case_when(
va_AC == 1 ~ "A",
va_AC > 1 ~ "B"
)) %>%
#plot as before
ggplot(.) +
geom_violin(aes(x = split, y = g_AD))