Tome el siguiente código:convertir una matriz de listas a una matriz regular
foo <- list()
foo[[1]] <- list(a=1, b=2)
foo[[2]] <- list(a=11, b=22)
foo[[3]] <- list(a=111, b=222)
result <- do.call(rbind, foo)
result[,'a']
En este caso, result[,'a']
muestra una lista. ¿Hay una manera más elegante tal que result
es una matriz "regular" de vectores? Me imagino que hay formas manuales de resolver esto, pero me preguntaba si había un paso obvio que me estaba perdiendo.
Deseo '' do.call' + rbind' fue rápido. ¿Alguna vez has intentado usarlo con 10,000 marcos de datos en una lista? – hadley
@hadley: Me parece recordar haber aprendido en una clase de estadísticas de computación que esta era la forma más rápida (después de muchos otros intentos fallidos) de vincular listas. Quizás estoy recordando algo equivocado. ¿Qué es más rápido? – Vince
Puede administrar aproximadamente 4 veces más rápido si lo escribe con cuidado. 'rbind.fill' en la próxima versión de plyr incorporará mis últimos mejores esfuerzos. – hadley