x <- array(1:30, c(4,5,3)) x[1,,] How can I do the same thing with do.call? do.call("[", list(x, 1)) == x[1] do.call("[", list(x, 1, NULL, NULL)) == x[1, NULL, NULL] I guess you can't, because of the special way that [ deals with arguments. How can I index an array programmatically for arrays and indices of varying dimensionality? Thanks, Hadley