Potrzebuję dostępu do nazw list wewnątrz funkcji lapply. Znalazłem kilka wątków w Internecie, gdzie jest powiedziane mam iterację nazwisk na liście, aby móc sprowadzić każdej listy nazwę elementu w mojej funkcji:Dostęp i zachowanie nazw list w funkcji lapply
> n = names(mylist)
> mynewlist = lapply(n, function(nameindex, mylist) { return(mylist[[nameindex]]) }, mylist)
> names(mynewlist)
NULL
> names(mynewlist) = n
Problem polega na tym, że mynewlist traci oryginalne indeksy mylist i Muszę dodać przypisanie last names(), aby je przywrócić.
Czy istnieje sposób podania jawnej nazwy indeksu dla każdego elementu zwróconego przez funkcję lapply? Lub inny sposób, aby upewnić się, że elementy mynewlist mają ustawione prawidłowe nazwy indeksów? Czuję, że moje indeksy nazw indeksów mogą być błędne, jeśli lapply nie zwraca elementów listy w tej samej kolejności niż moja lista.
Tak, to działa. Nadal muszę utworzyć "n" chociaż przez n = names (myList). Dwa wywołania do nazw (myList), jeden raz do utworzenia n, drugi do ustawienia n atrybutów. –
Możesz zastąpić drugi z 'names (n) <- n' though. – Aaron
@RobertKubrick Zobacz moją edycję dla możliwie ładniejszego rozwiązania. Sprawdź kod 'sapply', aby zobaczyć, jak bardzo jest to proste; działa tylko jako opakowanie, które dodaje imiona po fakcie. – joran