Effect size calculation for Kruskal-Wallis mean rank test I have a published paper in which I'm attempting to calculate the effect sizes for various outcomes.
For a pre-post scale, the authors report the sample size, mean rank, and p-value for an outcome (example below).
N          Mean Rank          p-value
50            100                .05

The only effect size calculations I can for the Kruskal-Wallis test require the chi-square statistic, which is not reported.
Is their a way to derive an effect size from this data?
 A: 
Tomczak and Tomczak, 2014, The need to report effect size estimates
revisited. An overview of some recommended measures of effect size.
Trends in Sport Sciences

is a good source for effect size statistics for nonparametric tests. (And at the time of writing the article is easy to find on the internet.)
Probably the most commonly reported effect size statistic for the Kruskal-Wallis test is epsilon-squared, which is the chi-squared statistic (or H) divided by (N-1).
From the sample size and p-value, this epsilon-squared value could be determined, but you also need to know the number of groups in the KW test (or the df for the test).
The p-value and sample size can be passed to the quantile function for the chi-squared distribution for the given df. Below I have an example in R where epsilon-squared is computed from p, N, and the number of groups.  And then an example where epsilon-squared is computed from the raw data.
[EDIT: Caveat in the following code that I am the author of the rcompanion package.]
### Create some data in three groups
set.seed(sum(utf8ToInt("KruskalEffect")))

A = rnorm(10, 5, 5)
B = rnorm(10, 9, 5)
C = rnorm(10, 13, 5)

Y = c(A, B, C)
G = factor(c(rep("A", length(A)), rep("B", length(B)), rep("C", length(C))))

Groups = 3
N = 30

### Perform the Kruskal-Wallis test
KW = kruskal.test(Y ~ G)
KW

### Calculate epsilon-squared from p, and number of groups, and N
P   = KW$p.value
CHI = qchisq(P, Groups-1, lower.tail=FALSE)
CHI

Epsilon2 = CHI / (N-1)
Epsilon2

### Calculate epsilon-squared from raw data
if(!require(rcompanion)){install.packages("rcompanion")}
library(rcompanion)

epsilonSquared(Y, G)

