lapply(1:4, function(i, x, y) {x[i,y[,1]]}, Z, index ) ## reproduces your results sapply(1:4, function(i, x, y) {x[i,y[,1]]}, Z, index ) ## collapses your list into a set of columns