So che questo argomento è apparso su SO alcune volte, ma gli esempi erano spesso più complicati e mi piacerebbe avere una risposta (o una serie di possibili soluzioni) a questa semplice situazione. Sto ancora avvolgendo la mia mente su R e la programmazione in generale. Quindi, qui voglio utilizzare la funzione lapply
o un semplice ciclo nell'elenco data
che è un elenco di tre elenchi di vettori.lapply function/loop sull'elenco di elenchi R
data1 <- list(rnorm(100),rnorm(100),rnorm(100))
data2 <- list(rnorm(100),rnorm(100),rnorm(100))
data3 <- list(rnorm(100),rnorm(100),rnorm(100))
data <- list(data1,data2,data3)
Ora, voglio ottenere l'elenco dei mezzi per ciascun vettore. Il risultato sarebbe un elenco di tre elementi (elenchi).
so solo come ottenere la lista dei risultati per una lista di vettori e
for (i in 1:length(data1)){
means <- lapply(data1,mean)
}
o da:
lapply(data1,mean)
e so come ottenere tutti i mezzi che utilizzano rapply
:
rapply(data,mean)
Il problema è che il rapply non mantiene la struttura dell'elenco. La guida e possibilmente alcuni suggerimenti/spiegazioni sarebbe molto apprezzata.
wow, questo è fantastico (e in qualche modo completamente non intuitivo per me, come ho imparato i loop tradizionali prima). solo per cogliere l'idea, ti dispiacerebbe mostrare come sarebbe il ciclo tradizionale? questo mi aiuterebbe ad avere un'idea della struttura di indicizzazione nel caso in cui ho bisogno di applicare alcune funzioni più complicate – MIH
Aggiornato il post – akrun
grazie mille, enorme aiuto! – MIH