Necesito acceder a los nombres de lista dentro de la función de aplicar. He encontrado algunos hilos en línea donde se dice que debería repetir por los nombres de la lista para ser capaz de ir a buscar cada una lista de nombres de elemento en mi función:Acceda y conserve los nombres de la lista en la función de aplicar
> n = names(mylist)
> mynewlist = lapply(n, function(nameindex, mylist) { return(mylist[[nameindex]]) }, mylist)
> names(mynewlist)
NULL
> names(mynewlist) = n
El problema es que mynewlist pierde los índices MyLIST originales y Tengo que agregar esa asignación de apellidos() para restaurarlos.
¿Hay alguna manera de dar un nombre de índice explícito a cada elemento devuelto por la función lapply? ¿O una forma diferente de asegurarse de que los elementos de mynewlist tengan los nombres de índice correctos? Siento que los nombres de los índices de mi lista podrían estar equivocados si la aplicación no devuelve los elementos de la lista en el mismo orden que mylist.
Sí, esto funciona. Todavía tengo que crear 'n' a través de n = names (myList). Dos llamadas a nombres (myList), una para crear n, la segunda para establecer n atributos. –
Puede reemplazar el segundo con 'names (n) <- n' embargo. – Aaron
@RobertKubrick Vea mi edición para una solución posiblemente más agradable. Examine el código de 'sapply' para ver qué tan simple es esto; simplemente actúa como un contenedor que agrega los nombres después del hecho. – joran