eq.corr <- function(n, r)
{
if (any(n <= 3)) {
stop("n <= 3")
}
k <- length(n)
v <- n-3
z <- 0.5*log((1+r)/(1-r))
sv <- sum(v)
svz <- sum(v*z)
chi <- sum(v*z*z)-svz^2/sv
p <- 1-pchisq(chi,k-1)
result <- c(chi, k-1, p)
name <- c("chi sq.", "d.f.", "P value")
if (p > 0.05) {
zm = svz/sv
result <- c(result, (exp(2*zm)-1)/(exp(2*zm)+1))
name <- c(name, "Estimated r")
}
names(result) <- name
result
}
n <- c(10, 16, 8, 29, 36)
r<- c(0.658, 0.285, 0.569, 0.427, 0.374)
eq.corr(n, r)