I would use replicate
, rowMeans
for the mean and rowSds
from matrixStats
:
ll <- length(mat.list)
nn <- ncol(mat.list[[1]])
replicate(3,{
idx.vec = sample(seq_len(nn),ll)
sample.mat = mapply('[', mat.list, TRUE, idx.vec)
list(mm = rowMeans(sample.mat),sd = rowSds(sample.mat))
},simplify=FALSE)