Durante la creazione di elenchi annidati R ha, ciò che considero, struttura di denominazione utile per gli elementi dell'elenco. Ho una lista di liste e voglio applicare una funzione di ogni singolo vettore contenuto in qualsiasi elenco. lapply
esegue questa operazione ma elimina la struttura di denominazione dell'elenco. Come posso lapply
di ogni elemento vettoriale dell'elenco nidificato senza rimuovere i nomi? Ho provato a passare l'indice, ma sembra fare la stessa cosa (nomi di strisce). Uscitalapply su elenco annidato e mantiene denominazione/struttura
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]]))
Console:
> 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"
Risultato desiderato:
$n1
$n1$a
[1] "5"
$n1$b
[1] "foo5"
$n2
$n2$a
[1] "f"
$n2$b
[1] "ffoo"
@shujaa sì ho modificato in modo da riflettere il tuo commento +1 –