У меня есть список списков, которые, в свою очередь, содержат несколько списков из-за структуры некоторых файлов JSON. Каждый список имеет одинаковое количество (т.е. 48 списков из 1 списка, из 1 списка, из 1 списка, из 2 списков [где мне нужен первый из последних двух]). Теперь проблема в том, что мне нужно извлечь глубоко вложенные данные из всех этих списков.
Для воспроизводимого примера.
Структура списка примерно такая (возможно, еще один уровень):
list1 = list(speech1 = 1, speech2 = 2)
list2 = list(list1, randomvariable="rando")
list3 = list(list2) #container
list4 = list(list3, name="name", stage="stage")
list5 = list(list4) #container
list6 = list(list5, date="date")
listmain1 = list(list6)
listmain2 = list(list6)
listmain3 = list(listmain1, listmain2)
Структура должна выглядеть примерно так:
[[1]]
[[1]][[1]]
[[1]][[1]][[1]]
[[1]][[1]][[1]][[1]]
[[1]][[1]][[1]][[1]][[1]]
[[1]][[1]][[1]][[1]][[1]][[1]]
[[1]][[1]][[1]][[1]][[1]][[1]][[1]]
[[1]][[1]][[1]][[1]][[1]][[1]][[1]]$speech1
[1] 1
[[1]][[1]][[1]][[1]][[1]][[1]][[1]]$speech2
[1] 2
[[1]][[1]][[1]][[1]][[1]][[1]]$randomvariable
[1] "rando"
[[1]][[1]][[1]][[1]]$name
[1] "name"
[[1]][[1]][[1]][[1]]$stage
[1] "stage"
[[1]][[1]]$date
[1] "date"
[[2]]
[[2]][[1]]
[[2]][[1]][[1]]
[[2]][[1]][[1]][[1]]
[[2]][[1]][[1]][[1]][[1]]
[[2]][[1]][[1]][[1]][[1]][[1]]
[[2]][[1]][[1]][[1]][[1]][[1]][[1]]
[[2]][[1]][[1]][[1]][[1]][[1]][[1]]$speech1
[1] 1
[[2]][[1]][[1]][[1]][[1]][[1]][[1]]$speech2
[1] 2
[[2]][[1]][[1]][[1]][[1]][[1]]$randomvariable
[1] "rando"
[[2]][[1]][[1]][[1]]$name
[1] "name"
[[2]][[1]][[1]][[1]]$stage
[1] "stage"
[[2]][[1]]$date
[1] "date"
Конечный результат будет выглядеть как это:
date name speech1 speech2
1
2
Я хочу сделать столбцы из переменных, которые мне нужны, и строки из списков, из которых я их извлекаю. В приведенном выше примере мне нужно будет извлечь переменные speech1, speech2, name и date из всех основных списков и преобразовать их в более простой фрейм данных. Я не совсем уверен, что это самый быстрый способ сделать это, и в последние пару дней я опрокидывал голову с помощью lapply () и purrr. В идеале я хочу обрабатывать списки как rowID с плоскими переменными в столбцах, но это тоже было сложно. Любая помощь приветствуется.