我正在尝试使用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]>
甚至可以将tibble存储为列表中未包含的tibble的元素吗?我尝试过的大多数事情都会引发错误,表明情况就是这样。
实际toJSON输出:
[{
"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
}
]
}]
}
]
所需的toJSON输出:
[{
"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
}
]
}
}
]