Я пытаюсь создать вложенный фрейм данных с dplyr
для записи некоторого JSON, но у меня возникают некоторые проблемы с получением желаемого результата. Пример кода:
library(tidyr)
library(dplyr)
df <- data.frame("ID" = c("A", "A", "B", "B"), "level_1" = c("C", "C", "D",
"D"), "values" = c(1,1,2,2), "other_values" = c(1,2,3,4))
df <- df %>% group_by(ID, values) %>% nest() %>% group_by(ID) %>% nest()
Это дает мне вывод
# A tibble: 2 x 2
ID data
<fct> <list>
1 A <tibble [2 x 2]>
2 B <tibble [2 x 2]>
Я пытаюсь удалить тип list
столбца data
, поэтому вместо этого вывод будет выглядеть как
# A tibble: 2 x 2
ID data
<fct> <chr>
1 A <tibble [2 x 2]>
2 B <tibble [2 x 2]>
Можно ли даже сохранить тиббл как элемент тиббла, которого нет в списке? Большинство вещей, которые я пробовал, приводили к ошибкам, свидетельствующим об этом.
Фактический вывод в JSON:
[{
"ID": "A",
"data": [{
"values": 1,
"data": [{
"level_1": "C",
"other_values": 1
},
{
"level_1": "C",
"other_values": 2
}
]
}]
},
{
"ID": "B",
"data": [{
"values": 2,
"data": [{
"level_1": "D",
"other_values": 3
},
{
"level_1": "D",
"other_values": 4
}
]
}]
}
]
Желаемый вывод в формате JSON:
[{
"ID": "A",
"data": {
"values": 1,
"data": [{
"level_1": "C",
"other_values": 1
},
{
"level_1": "C",
"other_values": 2
}
]
}
},
{
"ID": "B",
"data": {
"values": 2,
"data": [{
"level_1": "D",
"other_values": 3
},
{
"level_1": "D",
"other_values": 4
}
]
}
}
]