pooledr <- function(rs, Ns, pCI=0.975) { Zconv <- function(r) { 0.5*log((1+r)/(1-r)) } revZ <- function(Z) { (exp(2*Z)-1)/(exp(2*Z)+1) } R <- Zconv(rs) W <- Ns-3 M <- sum(R*W)/sum(W) SE <- sqrt(1/sum(W)) LLM <- M-qnorm(pCI)*SE ULM <- M+qnorm(pCI)*SE R <- revZ(M) LLR <- revZ(LLM) ULR <- revZ(ULM) return(list(R=R, pCI=pCI, CI=c(LLR, ULR))) } r <- c(0.307, -0.010, 0.300, 0.119, 0.194, 0.248) N <- c(32+75, 35+1489, 72+82, 1174+4991, 764+3374, 84+1475) pooledr(r, N)