lambda5<-function(n) { S <- length(n) N <- sum(n) if (S == N) return(NA) s1 <- length(which(n == 1)) if (s1 == 0) return(S) l <- 1 lastl <- l * 2 target <- log(N / (S - s1)) * s1 / S i <- 1 while (i < 100 && abs(log(l / lastl)) > 0.0001) { i <- i + 1 lastl <- l estimate <- log(l / (1 - exp(-l) - l * exp(-l))) * l * exp(-l) / (1 - exp(-l)) l <- l * (estimate / target)^(1 / 3) } return(S / (1 - exp(-l))) }