wilcoxon 检验的两个 Stat 函数之间的区别
The difference between two Stat functions for wilcoxon test
我知道 stats::wilcox.test 和 stats::pairwise.wilcox.test 之间的主要区别在于计算 p.adjust 值。该值仅由 stats::pairwise.wilcox.test 一步计算得出。但是当我使用以下代码出错时,有一些连接。我希望得到相同的结果,但出现组大小错误?!
df <- dataframe(group = c(rep("before",5), rep("after",5)),
a = runif(1:10),
b = runif(1:10),
c = runif(1:10))
#wilcox.test withour error
df %>%
summarise_each(funs(wilcox.test(.[group == "before"], .[group == "after"],
paired = TRUE)$p.value), vars = a:c)
#pairwise.wilcox.test with error
df %>%
summarise_each(funs(pairwise.wilcox.test(.[group == "before"], .[group == "after"])),
vars = a:c)
您的代码有多个问题。因此,我会试试这个:
首先使用简单的子集检查函数和结果
wilcox.test(a ~ group, df)
pairwise.wilcox.test(df$a, df$group, p.adjust.method = "none")
然后,尝试 tidyverse
:
df %>%
gather(key, value, -group) %>%
group_by(key) %>%
summarise(pvalue = wilcox.test(value ~ group)$p.value)
# A tibble: 3 x 2
key pvalue
<chr> <dbl>
1 a 0.0916
2 b 0.386
3 c 0.969
绝对不需要使用成对版本,因为您的数据中只有两个组值。
如果你坚持总结,试试
df %>%
summarise_at(vars(-1), list(~wilcox.test(. ~ group)$p.value))
a b c
1 0.09155406 0.3858534 0.9693262
已用数据
set.seed(123)
df <- data.frame(group = c(rep("before",5), rep("after",5)),
a = runif(50),
b = runif(50),
c = runif(50))
我知道 stats::wilcox.test 和 stats::pairwise.wilcox.test 之间的主要区别在于计算 p.adjust 值。该值仅由 stats::pairwise.wilcox.test 一步计算得出。但是当我使用以下代码出错时,有一些连接。我希望得到相同的结果,但出现组大小错误?!
df <- dataframe(group = c(rep("before",5), rep("after",5)),
a = runif(1:10),
b = runif(1:10),
c = runif(1:10))
#wilcox.test withour error
df %>%
summarise_each(funs(wilcox.test(.[group == "before"], .[group == "after"],
paired = TRUE)$p.value), vars = a:c)
#pairwise.wilcox.test with error
df %>%
summarise_each(funs(pairwise.wilcox.test(.[group == "before"], .[group == "after"])),
vars = a:c)
您的代码有多个问题。因此,我会试试这个:
首先使用简单的子集检查函数和结果
wilcox.test(a ~ group, df)
pairwise.wilcox.test(df$a, df$group, p.adjust.method = "none")
然后,尝试 tidyverse
:
df %>%
gather(key, value, -group) %>%
group_by(key) %>%
summarise(pvalue = wilcox.test(value ~ group)$p.value)
# A tibble: 3 x 2
key pvalue
<chr> <dbl>
1 a 0.0916
2 b 0.386
3 c 0.969
绝对不需要使用成对版本,因为您的数据中只有两个组值。 如果你坚持总结,试试
df %>%
summarise_at(vars(-1), list(~wilcox.test(. ~ group)$p.value))
a b c
1 0.09155406 0.3858534 0.9693262
已用数据
set.seed(123)
df <- data.frame(group = c(rep("before",5), rep("after",5)),
a = runif(50),
b = runif(50),
c = runif(50))