Mam ramki danych o następującej strukturze:R: Split elementy listy w podlist
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 jest podzielony na liście elementów:
all.inc = split(df, inc)
Teraz chcę podzielić każdy element tej listy do podlist. Coś takiego:
all.pat = split(all.inc, pat)
To oczywiście nie działa. Próbowałem już funkcji plyr
i lapply
, ale nie działało.
Wszelkie pomysły?
OK, działa. W rezultacie otrzymuję listę o tej samej długości (10) co all.inc. Ale chcę mieć każdy element na przykład, by wszystko.pat [1] było pojedynczym elementem listy. all.pat [1] ma długość 1, ale powinna mieć długość 3. W tym przypadku cała lista powinna mieć długość 30. Mam nadzieję, że to jasne ?! – Markus
@Markus, to dlatego, że lista jest * zagnieżdżona *. Indeksowanie podlist wymaga: 'length (all.pat [[1]])'. – A5C1D2H2I1M1N2O1R2T1
ok, nie ma problemu. Właśnie znalazłem funkcję "unlist". Przy rekursywnej opcji = F zapewnia oczekiwany wynik. Wielkie dzięki! – Markus