These are, or as it may, will be, functions to analyse and plot distributions of p values in R.
The initial plan is to simply duplicate the methods from the http://www.p-curve.com/ website. As time goes by, I hope to add some additional things.
Any comments or ideas, raise an issue on the repo (top right if you're on the GitHub page right now).
# here's our data - a list of p values.
# note that they all have to be < 0.05
# and they all have to come from tests in which the
# distribution of p values under the null is uniform
# here are some p values you might get from a strong effect size
p <- rexp(1000, 200)
p <- p[p<0.05]
# let's add some p-hacking and/or publication bias
h <- -1 * rexp(100, 200) + 0.05
h <- h[h>0.00]
p <- c(p, h)
pcurve.plot(p)
Your plot should look a bit like this:
# Now we can do some tests
# 1. Can we reject a uniform distribution?
pcurve.binomial.test(p)
# answer: Yes. Very right skewed. This uses a midpoint of 0.025, tests for left/right balance in the plot
# 3. We can do Fisher's test to test for skew as well.
pcurve.fisher.test(p)