Podczas tworzenia zagnieżdżonych list R ma, co uważam, użyteczną strukturę nazw dla elementów listy. Mam listę list i chcę zastosować funkcję każdego wektora zawartego na dowolnej liście. lapply
robi to, ale potem usuwa strukturę nazewnictwa listy. Jak mogę lapply
każdego elementu wektorowego zagnieżdżonej listy bez zdzierania nazw? Próbowałem zamiast tego podać indeks, ale wydaje się, że robi to samo (nazwy pasków).lapply nad listą zagnieżdżoną i zachować nazwę/strukturę
TEST <- list(n1=list(a="5", b="65"), n2=list(a="f", b= "f6"))
TEST
lapply(TEST, function(x) gsub("6", "foo", x))
lapply(seq_along(TEST), function(i) gsub("6", "foo", TEST[[i]]))
konsoli wyjściowa:
> TEST
$n1
$n1$a
[1] "5"
$n1$b
[1] "65"
$n2
$n2$a
[1] "f"
$n2$b
[1] "f6"
> lapply(TEST, function(x) gsub("6", "foo", x))
$n1
[1] "5" "foo5"
$n2
[1] "f" "ffoo"
Oczekiwane rezultaty:
$n1
$n1$a
[1] "5"
$n1$b
[1] "foo5"
$n2
$n2$a
[1] "f"
$n2$b
[1] "ffoo"
@shujaa tak stworzony, aby odzwierciedlić swój komentarz –