> x <- lapply(1:100, function(x) summary(runif(100))) > head(x, 4) [[1]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.02922 0.38330 0.58120 0.58230 0.83430 0.99870
[[2]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.004903 0.281400 0.478900 0.497100 0.729900 0.990700 [[3]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.002561 0.283100 0.567400 0.516500 0.736800 0.986700 [[4]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.004827 0.264000 0.499500 0.503200 0.732300 0.998500 > sapply(x, "[", 3)[1:4] Median Median Median Median 0.5812 0.4789 0.5674 0.4995 > -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Jeremy Miles Sent: Wednesday, 29 June 2011 9:23 AM To: r-help Subject: [R] Extract elements from objects in a list Hi All, I want to extract elements of elements in a list. Here's an example of what I mean: If I create a list: x <- as.list(100) for(loop in c(1:100)) { x[[loop]] <- summary(runif(100)) } > head(x) [[1]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.02271 0.25260 0.58130 0.52120 0.77270 0.99670 [[2]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.006796 0.259700 0.528100 0.515500 0.781900 0.993100 [[3]] Min. 1st Qu. Median Mean 3rd Qu. Max. 0.00927 0.22800 0.40780 0.46410 0.69460 0.98780 I want to extract (say) the medians as a vector. This would be: x[[1]][[3]] x[[2]][[3]] x[[3]][[3]] I thought there would be a way of doing this with something like apply(), but I cannot work it out. Is there a way of doing this without a loop? Thanks, Jeremy ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.