Ho frame di dati con struttura seguente:R: elementi scissi di una lista in sottoliste
pat = c(rep(1, 50), rep(2, 50), rep(3, 50))
inc = rep(c(rep(1, 5), rep(2, 5), rep(3, 5), rep(4, 5), rep(5, 5), rep(6, 5),
rep(7, 5), rep(8, 5), rep(9, 5), rep(10, 5)), 3)
df = data.frame(cbind(pat, inc))
df è suddiviso in una lista di elementi:
all.inc = split(df, inc)
Ora voglio dividere ogni elemento di questa lista in sotto-liste. Qualcosa di simile:
all.pat = split(all.inc, pat)
Questo non funziona, ovviamente. Ho già provato le funzioni plyr
e lapply
, ma non l'ho fatto funzionare.
Qualche idea?
Ok, funziona. Di conseguenza ottengo una lista con la stessa lunghezza (10) di all.inc. Ma voglio che ogni elemento, ad esempio, all.pat [1] sia un singolo elemento di lista. all.pat [1] ha la lunghezza 1, ma dovrebbe avere lunghezza 3. L'intero elenco dovrebbe avere lunghezza 30, in questo caso. Spero, questo è chiaro ?! – Markus
@Markus, perché la lista è * nidificata *. L'indicizzazione delle sotto-liste richiederebbe: 'length (all.pat [[1]])'. – A5C1D2H2I1M1N2O1R2T1
ok, nessun problema. Ho appena trovato la funzione "unlist". Con l'opzione ricorsiva = F fornisce il risultato desiderato. Grazie molto! – Markus