0

我有一个数据框,我想在小提琴图中绘制,其中观察被分为两组之一:[va_AC == 1] or [va_AC > 1].

有没有办法在不向 df 添加新列来为其分配组的情况下做到这一点?

在此处输入图像描述

    ggplot(df) + 
      geom.violin(aes(x=[va_AC == 1] or [va_AC > 1], 
                      y=g_AD))
4

1 回答 1

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))
于 2018-04-18T21:41:50.940 回答