私はこのようなことをしたかった
x 軸にラベルのないサブグループに対して ggsignif または ggpubr を使用して複数の比較を追加します
私はこれまでに得ました:
パッケージとサンプルデータ
library(tidyverse)
library(ggpubr)
library(ggpol)
library(ggsignif)
example.df <- data.frame(species = sample(c("primate", "non-primate"), 50, replace = TRUE),
treated = sample(c("Yes", "No"), 50, replace = TRUE),
gender = sample(c("male", "female"), 50, replace = TRUE),
var1 = rnorm(50, 100, 5))
レベル
example.df$species <- factor(example.df$species,
levels = c("primate", "non-primate"), labels = c("p", "np"))
example.df$treated <- factor(example.df$treated,
levels = c("No", "Yes"), labels = c("N","Y"))
example.df$gender <- factor(example.df$gender,
levels = c("male", "female"), labels = c("M", "F"))
参照する必要があるグループが x 軸で明示的に指定されていない場合 (x 軸の各変数のサブグループでありggsignif
、ggpubr
x軸ではなく塗りつぶしの凡例にのみ示されているため、代わりにこれを試しました。
example.df %>%
unite(groups, species, treated, remove = F, sep= "\n") %>%
{ggplot(., aes(groups, var1, fill= treated)) +
geom_boxjitter() +
facet_wrap(~ gender, scales = "free") +
ggsignif::geom_signif(comparisons = combn(sort(unique(.$groups)), 2, simplify = F),
step_increase = 0.1)}
私はこれを得る、
ただし、 x 軸上の結合されたグループの順序は、私が望む方法ではありません。ファセットごとにp/N、np/N、p/Y、np/Yで注文したいです。
どうすればいいですか?どんな助けでも大歓迎です。
編集:mutateを使用して新しい変数を作成し、それを私の好みのプロット順序で解決する順序付き因子にします。
example.df %>%
unite(groups, species, treated, remove = F, sep= "\n") %>%
mutate(groups2 = factor(groups, levels = c("p\nN", "np\nN", "p\nY", "np\nY"),
ordered = TRUE)) %>%
{ggplot(., aes(groups2, var1, fill= treated)) +
geom_boxjitter() +
facet_wrap(~gender,scales = "free") +
ggsignif::geom_signif(comparisons = combn(sort(unique(.$groups2)), 2, simplify = F),
step_increase = 0.1)}
unite
しかし、まったく使用する必要がなく、元の要因を維持し、ggsignif
またはを使用してプロットする重要な値を取得するための解決策をまだ探していますggpubr
。