Mann Whitney U coming out with same p values for different performance metrics I have a dataset comparing two different treatment groups with several performance metrics (PM) expressed in percentage (see below). The Mann-Whitney U Test is the most appropriate test (discrete data, not normally distributed).
When I run my script (see below), many of the p values are coming out at the same value. This is strange, as I know the assumptions are met with the test, and I have used this script for previous data. Below I have given an example running three of the points. Points that give different p values are PM 2 (%), PM 6 (%), PM 11 (%).
Does anyone know where it's going wrong?

> wilcox.test(Dataset$`PM 1 (%)` ~ Dataset$`Treatment Group`, paired = FALSE)

    Wilcoxon rank sum exact test

data:  Dataset$`PM 1 (%)` by Dataset$`Treatment Group`
W = 0, p-value = 0.02857
alternative hypothesis: true location shift is not equal to 0

> wilcox.test(Dataset$`PM 3 (%)` ~ Dataset$`Treatment Group`, paired = FALSE)

    Wilcoxon rank sum exact test

data:  Dataset$`PM 3 (%)` by Dataset$`Treatment Group`
W = 0, p-value = 0.02857
alternative hypothesis: true location shift is not equal to 0

> wilcox.test(Dataset$`PM 7 (%)` ~ Dataset$`Treatment Group`, paired = FALSE)

    Wilcoxon rank sum exact test

data:  Dataset$`PM 7 (%)` by Dataset$`Treatment Group`
W = 0, p-value = 0.02857
alternative hypothesis: true location shift is not equal to 0


It appears that everything you have done is correct and you just foud out, that with small numbers there are only a few values a Wilcoxon p-value can take.
You will have many samples, where all values in group A are smaller then all values in group B as in the following example. The p-value will always be 0.028...
A <- c(1, 2, 3, 4)
B <- c(11, 12, 13, 14)

wilcox.test(A, B)$p.value
#> [1] 0.02857143

It doesn't matter, if the values differ more or less, as long as the ranks stay the same
A <- c(1, 2, 3, 4)
B <- c(1100, 1200, 1300, 1400)

wilcox.test(A, B)$p.value
#> [1] 0.02857143

It's still the same p-value, the same that you got. As long as your data follows this pattern, it is perfectly ok to get the exact same p-value from wilcox.test.
