Like Ben, only a little different.
dd <- do.call(rbind, myList) cbind(dd[1], student = sub("[.].*", "", rownames(dd)), dd[2:3], row.names = NULL) # year student ab # 1 1 peter -1.66983899 0.3683629 # 2 2 peter 0.25391016 -0.4999335 # 3 3 peter -0.19102468 -0.9344484 # 4 4 peter 1.72821089 -2.6148841 # 5 5 peter 0.30320439 -0.2602509 # 6 1 john -0.02447092 -0.2396401 # 7 2 john -1.57022813 1.1159078 # 8 3 john 2.82545689 0.6818537 # 9 4 john -0.11273218 -1.8000738 # 10 5 john -1.39706920 0.1647720
September 16, 2015 Patch . Improvement to my previous answer:
f <- function(x, y) cbind(x[1], student = y, x[-1]) do.call(rbind, Map(f, myList, names(myList), USE.NAMES = FALSE))
source share