dwilcox(x, m, n) pwilcox(q, m, n) qwilcox(p, m, n) rwilcox(nn, m, n)
x,q
 | vector of quantiles. | 
p
 | vector of probabilities. | 
nn
 | number of observations to generate. | 
m,n
 | numbers of observations in the first and second sample, respectively. Must be positive integers less than 50. | 
m
and n, respectively.  dwilcox gives the density,
pwilcox gives the distribution function, qwilcox gives
the quantile function, and rwilcox generates random deviates.
This distribution is obtained as follows.  Let x and y
be two random, independent samples of size m and n.
Then the Wilcoxon rank sum statistic is the number of all pairs
(x[i], y[j]) for which y[j] is not greater than
x[i].  This statistic takes values between 0 and
m * n, and its mean and variance are m * n / 2 and
m * n * (m + n + 1) / 12, respectively.
dsignrank etc, for the one-sample Wilcoxon
rank statistic.
x <- -1:(4*6 + 1)
fx <- dwilcox(x, 4, 6)
all(fx == dwilcox(x, 6, 4))
Fx <- pwilcox(x, 4, 6)
all(abs(Fx - cumsum(fx)) < 10 * .Machine$double.eps)
layout(rbind(1,2),width=1,heights=c(3,2))
plot(x, fx,type='h', col="violet",
     main= "Probabilities (density) of Wilcoxon-Statist.(n=6,m=4)")
plot(x, Fx,type="s", col="blue",
     main= "Distribution of Wilcoxon-Statist.(n=6,m=4)")
abline(h=0:1, col="gray20",lty=2)
layout(1)# set back
N <- 200
hist(U <- rwilcox(N, m=4,n=6), breaks=0:25 - 1/2, border="red", col="pink",
     sub = paste("N =",N))
mtext("N * f(x),  f() = true ``density''", side=3, col="blue")
 lines(x, N*fx, type='h', col='blue', lwd=2)
points(x, N*fx, cex=2)
## Better is a Quantile-Quantile Plot
qqplot(U, qw <- qwilcox((1:N - 1/2)/N, m=4,n=6),
       main = paste("Q-Q-Plot of empirical and theoretical quantiles",
                     "Wilcoxon Statistic,  (m=4, n=6)",sep="\n"))
n <- as.numeric(names(print(tU <- table(U))))
text(n+.2, n+.5, labels=tU, col="red")