【发布时间】:2018-09-03 19:40:54
【问题描述】:
我遇到了一个非常特殊的问题。我有一个带有 JSON 字段的数据库:
# A tibble: 1 x 3
field1 field2 JSONfield
<int> <chr> <chr>
1 43 stringgg "{\"typ\": \"Liste mit Punkten\", \"min~
现在,如果我应用以下模式:
dbGetQuery(pool, mydatabase) %>%
mutate(json = map(JSONfield, ~ fromJSON(.) %>%
as.data.frame(stringsAsFactors = FALSE))) %>%
unnest(json)
我会收到:
# A tibble: 2 x 10
field1 field2 JSONfield typ min max items.1 items.2 items.3
<int> <chr> <chr> <chr> <int> <int> <fct> <fct> <fct>
1 43 stringgg "{\"typ\": \"Liste mit~ List~ 0 1 first second third
2 43 stringgg "{\"typ\": \"Liste mit~ List~ 0 1 3 0 7
虽然我想要的输出是:
# A tibble: 2 x 10
field1 field2 JSONfield typ min max items
<int> <chr> <chr> <chr> <int> <int> <list>
1 43 stringgg "{\"typ\": \"Liste mit~ List~ 0 1 <data.frame~
JSON 对象如下所示:
{"typ": "Liste mit Punkten",
"min": 0,
"max": 1,
"items": [["first", "second", "third"],
[3, 0, 7]]}
此外,我必须处理的 JSON 对象具有最多 7 个名称/值对的子集,这些名称/值对可能会或可能不会出现在对象中,因此我正在寻找一个相当不具体的解决方案。
非常感谢在此问题上提供任何帮助。
【问题讨论】:
-
data.frame或data.table在 R 中不能接受另一个data.frame,data.table作为列。要么将其保存为嵌套列表,要么将项目连接到一个字符串列中。
标签: r json dataframe datatable dplyr