prendere il codice seguente:convertire una matrice di liste ad una matrice regolare
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']
In questo caso, result[,'a']
mostra un elenco. Esiste un modo più elegante in modo che result
sia una matrice "regolare" di vettori? Immagino che ci siano modi manuali per farlo, ma mi stavo chiedendo se ci fosse un passo ovvio che mi mancava.
auguro 'do.call' +' rbind' era veloce. Hai mai provato a usarlo con 10.000 frame di dati in un elenco ?! – hadley
@hadley: Mi sembra di ricordare di aver appreso in una classe statistica di calcolo che questo era il modo più veloce (dopo molti altri tentativi falliti) di legare le liste. Forse sto ricordando la cosa sbagliata. Cos'è più veloce? – Vince
Puoi gestire circa 4 volte più velocemente se lo scrivi attentamente da solo. 'rbind.fill' nella prossima versione di plyr incorporerà i miei ultimi migliori sforzi. – hadley