Suggestion: getLength <- function(x, lower=300, upper=550){ bp <- unlist(x$clusters.bp) bp <- bp[!is.na(bp)] bp <- bp[bp >= lower] bp <- bp[bp <= upper] bp <- sum(bp)/1000000 n <- length(bp) list(bp=bp, n=n) }