geom_signif 函数的多重比较,R
Multiple comparisons with geom_signif function, R
包 ggsignif
对于在 ggplot
图表中快速轻松地指示重要比较非常有用。但是 comparisons
调用需要手动输入每对要比较的值。
例如
library(ggplot2)
library(ggsignif)
data(iris)
ggplot(iris, aes(x=Species, y=Sepal.Length)) +
geom_boxplot() +
geom_signif(comparisons = list(c("versicolor", "virginica"),c('versicolor','setosa')),
map_signif_level=TRUE)
我想知道如何通过一次引用所有可能的组合来规避这种情况?例如,expand.grid(x = levels(iris$Species), y = levels(iris$Species))
,给出所有组合
x y
1 setosa setosa
2 versicolor setosa
3 virginica setosa
4 setosa versicolor
5 versicolor versicolor
6 virginica versicolor
7 setosa virginica
8 versicolor virginica
9 virginica virginica
但是如何让 geom_signif(comparisons=...
接受它呢?
包装信息可在此处获得https://cran.r-project.org/web/packages/ggsignif/index.html
根据 Adam Quek 的评论,您只需转置创建的矩阵并将每一行变成一个列表:
split(t(combn(levels(iris$Species), 2)), seq(nrow(t(combn(levels(iris$Species), 2)))))
$`1`
[1] "setosa" "versicolor"
$`2`
[1] "setosa" "virginica"
$`3`
[1] "versicolor" "virginica"
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_signif(comparisons = split(t(combn(levels(iris$Species), 2)), seq(nrow(t(combn(levels(iris$Species), 2))))),
map_signif_level = TRUE)
包 ggsignif
对于在 ggplot
图表中快速轻松地指示重要比较非常有用。但是 comparisons
调用需要手动输入每对要比较的值。
例如
library(ggplot2)
library(ggsignif)
data(iris)
ggplot(iris, aes(x=Species, y=Sepal.Length)) +
geom_boxplot() +
geom_signif(comparisons = list(c("versicolor", "virginica"),c('versicolor','setosa')),
map_signif_level=TRUE)
我想知道如何通过一次引用所有可能的组合来规避这种情况?例如,expand.grid(x = levels(iris$Species), y = levels(iris$Species))
,给出所有组合
x y
1 setosa setosa
2 versicolor setosa
3 virginica setosa
4 setosa versicolor
5 versicolor versicolor
6 virginica versicolor
7 setosa virginica
8 versicolor virginica
9 virginica virginica
但是如何让 geom_signif(comparisons=...
接受它呢?
包装信息可在此处获得https://cran.r-project.org/web/packages/ggsignif/index.html
根据 Adam Quek 的评论,您只需转置创建的矩阵并将每一行变成一个列表:
split(t(combn(levels(iris$Species), 2)), seq(nrow(t(combn(levels(iris$Species), 2)))))
$`1`
[1] "setosa" "versicolor"
$`2`
[1] "setosa" "virginica"
$`3`
[1] "versicolor" "virginica"
ggplot(iris, aes(x = Species, y = Sepal.Length)) +
geom_boxplot() +
geom_signif(comparisons = split(t(combn(levels(iris$Species), 2)), seq(nrow(t(combn(levels(iris$Species), 2))))),
map_signif_level = TRUE)