[R-es] Preservar el nombre de un nodo en una lista después de unir dos listas diferentes

David Mendez evion12000 en gmail.com
Mar Nov 9 04:04:27 CET 2010


Pregunta básica sobre listas, tengo dos listas: anoml (compuesta por
67 dataframes)  y datos (67 vectores)

> str(anoml)
List of 67
$ Anom_e1751: num [1:456] -0.874 -0.874 -0.874 -0.874 -0.66 ...
$ Anom_e1756: num [1:456] -0.984 -0.984 -0.984 -0.874 -0.464 ...
$ Anom_e1773: num [1:456] -0.875 -0.95 -0.95 -0.838 -0.727 ...
...
str(datos)
List of 67
$ e1751.PtoLaCruz.cr.txt          :'data.frame': 456 obs. of  4 variables:
 ..$ A  : int [1:456] 1960 1960 1960 1960 1960 1960 1960 1960 1960 1960 ...
 ..$ M  : int [1:456] 1 2 3 4 5 6 7 8 9 10 ...
 ..$ PRE: num [1:456] 0 0 0 0 10.6 ...
 ..$ COD: Factor w/ 2 levels "FE","O": 2 2 2 2 2 2 2 2 2 2 ...
$ e1756.ChaparroC.cr.txt          :'data.frame': 456 obs. of  4 variables:
 ..$ A  : int [1:456] 1960 1960 1960 1960 1960 1960 1960 1960 1960 1960 ...
 ..$ M  : int [1:456] 1 2 3 4 5 6 7 8 9 10 ...
 ..$ PRE: num [1:456] 0 0 0 8.4 39.7 ...
 ..$ COD: Factor w/ 2 levels "FE","O": 2 2 2 2 2 2 2 2 2 2 ...

Se me ha ocurrido unirlas y les aplique

datoAnom <- mapply(cbind, datos, anoml, SIMPLIFY=F)

que efectivamente me  dió:

str(datoAnom)
List of 67
$ e1751.PtoLaCruz.cr.txt          :'data.frame': 456 obs. of  5 variables:
 ..$ A               : int [1:456] 1960 1960 1960 1960 1960 1960 1960
1960 1960 1960 ...
 ..$ M               : int [1:456] 1 2 3 4 5 6 7 8 9 10 ...
 ..$ PRE             : num [1:456] 0 0 0 0 10.6 ...
 ..$ COD             : Factor w/ 2 levels "FE","O": 2 2 2 2 2 2 2 2 2 2 ...
 ..$ dots[[2L]][[1L]]: num [1:456] -0.874 -0.874 -0.874 -0.874 -0.66 ...
$ e1756.ChaparroC.cr.txt          :'data.frame': 456 obs. of  5 variables:
 ..$ A               : int [1:456] 1960 1960 1960 1960 1960 1960 1960
1960 1960 1960 ...
 ..$ M               : int [1:456] 1 2 3 4 5 6 7 8 9 10 ...
 ..$ PRE             : num [1:456] 0 0 0 8.4 39.7 ...
 ..$ COD             : Factor w/ 2 levels "FE","O": 2 2 2 2 2 2 2 2 2 2 ...
 ..$ dots[[2L]][[2L]]: num [1:456] -0.984 -0.984 -0.984 -0.874 -0.464 ...

El problema es que los nombres originales de la primera lista (Ej.
$Anom_e1751) han cambiado por las dimensiones de (..$
dots[[2L]][[2L]]) pero deseo conservarlos como se encontraban
originalmente, ¿Qué debo hacer para evitar esto? de modo que el
resultado luzca así:

$ e1751.PtoLaCruz.cr.txt          :'data.frame': 456 obs. of  5 variables:
 ..$ A               : int [1:456] 1960 1960 1960 1960 1960 1960 1960
1960 1960 1960 ...
 ..$ M               : int [1:456] 1 2 3 4 5 6 7 8 9 10 ...
 ..$ PRE             : num [1:456] 0 0 0 0 10.6 ...
 ..$ COD             : Factor w/ 2 levels "FE","O": 2 2 2 2 2 2 2 2 2 2 ...
 ..$ $ Anom_e1751: num [1:456] -0.874 -0.874 -0.874 -0.874 -0.66 ...
--
David Méndez

If geography is prose, maps are iconography.
Lennart Meri



Más información sobre la lista de distribución R-help-es