Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R wilcoxon检验中两个统计函数的差异_R_Pairwise - Fatal编程技术网

R wilcoxon检验中两个统计函数的差异

R wilcoxon检验中两个统计函数的差异,r,pairwise,R,Pairwise,我知道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),

我知道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)

df%
总结每个(funs)(wilcox.test(“]”之前的[组==”,“]”之后的[组==”,
配对=真)$p.value),变量=a:c)
#带误差的成对wilcox检验
df%>%
总结每个(funs(成对的wilcox.test([组==”在“]之前,[组==”在“]之后)),
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
二手数据

set.seed(123)
df <- data.frame(group = c(rep("before",5), rep("after",5)),
                a = runif(50),
                b = runif(50),
                c = runif(50))
set.seed(123)

df感谢您的评论,您能告诉我我的代码有什么问题吗?它从
runif(1:10)
开始,这是可以的,因为
n
允许是一个向量,但建议长度为1,并使用
[group==“before”]
在子集中结束。这当然有效,但在wilcox函数中完全是垃圾。请尝试帮助
?runif()
set.seed(123)
df <- data.frame(group = c(rep("before",5), rep("after",5)),
                a = runif(50),
                b = runif(50),
                c = runif(50))