使用多个测试组执行 Wilcoxon 测试

nba*_*020 3 statistics r dplyr

我想运行 Wilcoxon 测试来将 3 个测试组(B、C 和 D)与对照组 (A) 进行比较

数据按以下格式组织:

Group   CustomerID  Value
A           23483   61
A           23484   54
A           23485   57
A           23486   59
A           23487   69
A           23488   69
B           23489   57
B           23490   53
B           23491   68
B           23492   59
B           23493   57
C           23494   58
C           23495   70
C           23496   69
C           23497   62
C           23498   53
D           23499   65
D           23500   62
D           23501   60
D           23502   62
D           23503   63
D           23504   68
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经写了下面的代码

#Seperate Control Data
DataControl<- Data%>%
                select(Group,Value)%>%
                filter(Group =="A")

#Filter data
Data%>%
  filter(Group!="A")%>%
  select(Group,Value)%>%
  group_by(Group)
  summarise(p_value = wilcox.test(DataControl$Value,exact =FALSE)$p.value)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

Error in summarise_(.data, .dots = compat_as_lazy_dots(...)) : 
  argument ".data" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

所需的输出应为

Group P-value
B     0.04
C     0.10
D     0.01
Run Code Online (Sandbox Code Playgroud)

Jul*_*ora 5

正如 @OlliePerkins 所指出的,除了缺少管道运算符之外,您还缺少以下调用中的一个参数wilcox.test

Data %>%
  filter(Group != "A") %>%
  group_by(Group) %>%
  summarise(p_value = wilcox.test(DataControl$Value, Value, exact = FALSE)$p.value)
# A tibble: 3 x 2
#   Group p_value
#   <fct>   <dbl>
# 1 B       0.355
# 2 C       0.782
# 3 D       0.470
Run Code Online (Sandbox Code Playgroud)

请注意,这select(Group, Value)是没有必要的。