Jest kilka pytań na ten temat, ale nie widzę żadnego ogólnego rozwiązania: Mam głęboko rekursywną listę i chcę spłaszczyć ją do pojedynczej listy wszystkich elementów nie znajdujących się na liście. zawarte.Spłaszczyć listę rekursywną
Na przykład, wziąć tego pod listę:
d = list(
list(
list(
iris[sample(1:150,3),],
iris[sample(1:150,3),]
),
list(
list(
iris[sample(1:150,3),],
list(
iris[sample(1:150,3),],
iris[sample(1:150,3),]
)
)
)
)
)
i przekształcić go w ten sposób:
list(iris[sample(1:150,3),],
iris[sample(1:150,3),],
iris[sample(1:150,3),],
iris[sample(1:150,3),],
iris[sample(1:150,3),])
Próbowałem kilka z następujących czynności w oparciu o inne rozwiązania:
purrr::flatten(d)
plyr::llply(d, unlist)
lapply(d, unlist, use.names=FALSE)
Żaden nie osiąga pożądanego rezultatu, który w przykładzie ma pojedynczą długość listy 5, a wszystkie pozycje to data.frame
. Wszelkie sugestie doceniane.
_technically_ w 'data.frame' jest w' list' ;-) – hrbrmstr
że wspomniane, że b zawiera pierwotne/c '* apply' (w tym 'rapply') w związku z tym, dlaczego nie są one skuteczne w rekurencyjnym wyodrębnianiu danych.frame-y, tak jak to – hrbrmstr
@hrbrmstr _practically_ it's not;) – geotheory