You should be able to access the exact p-value no problem in R!
Here is a reproducible example showing what I mean (the data comes from the documentation, see ?wilcox.test
):
x <- c(1.83, 0.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30)
y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29)
result=wilcox.test(x, y, paired = TRUE, alternative = "greater")
print(result)
# It prints p-value = 0.02
print(result$p.value)
# [1] 0.0195
You'll get some rounded form of the p-value if you print(result)
because it looks better formatted that way, but you can access the exact value as shown in the snippet.
PS: The p-value cannot be exactly equal to 0 in this case. At best it will be numerically equal to 0 if the number is too small for the software to handle (see the link below). I would report the exact p-value as asked by the journal (even it's not the most sensible thing, so long it makes them happy) ; and if it shows 0 I would at least write numerically equal to 0.
Relevant with a great answer: How should tiny $p$-values be reported? (and why does R put a minimum on 2.22e-16?)