У меня есть список списков, подобных этому образцу:Извлечь значения из списка списков с R
z <- list(list(num1=list((list(tab1=list(list(a=1, b=2, c=5), list(a=3, b=4), list(d=4,e=7)))))),list(num2=list((list(tab2=list(list(a=1, b=2), list(a=3, b=4)))))))
Я хотел бы извлечь цифры из последнего списка имен списков:
Желаемая выход список (с 1 список записей короче) или как dataframe с колоннами, соответствующих основному списку:
[1] a b c a b d e
[2] a b a b
dataframe:
column1 column2
a a
b b
c a
a b
b ""
d ""
e ""
Я пробовал различные комбинации sapply(z, "[[", c("a","b"...)
, но не смог, так как имена подписок различаются.
EDIT: Извините, мне нужны были фактические значения, а не последний узел (буквы)! Кроме того, каждое числовое значение имеет имя столбца, а не в приведенном выше примере; это так:
[[1]]$num1[[1]]$tab1[[1]]$a
Name
1
Таким образом, искомое решение являются значения:
[1]
1 2 5 3 4 4 7
[2]
1 2 3 4
Я бы на самом деле нужно числовые значения вместо букв. Если бы вы могли приспособить свое решение к этому, я был бы благодарен. Благодарю.
Я принимаю ваш ответ по ряду причин. (усилия и другие цели (обучение)). Большое спасибо! – Maximilian
Спасибо! Но, конечно, для «второй версии» вашего вопроса, ответ Дэвида намного лучше ... – Cath
Да, ответ Дэвида - это способ пойти на это. Его ответ остается на СО, так что это вопрос выбора. – Maximilian