【发布时间】:2018-07-25 14:38:31
【问题描述】:
我有一个包含几列的 sqlite 数据库文件。其中一列嵌入了一个 JSON 字典(带有两个键)。我想将 JSON 列提取到 R 中的数据框中,该数据框在单独的列中显示每个键。
我尝试了 rjson::fromJSON,但它只读取第一项。有没有我错过的技巧?
这是一个模仿我的问题的例子:
> eg <- as.vector(c("{\"3x\": 20, \"6y\": 23}", "{\"3x\": 60, \"6y\": 50}"))
> fromJSON(eg)
$3x
[1] 20
$6y
[1] 23
所需的输出类似于:
# a data frame for both variables
3x 6y
1 20 23
2 60 50
或者,
# a data frame for each variable
3x
1 20
2 60
6y
1 23
2 50
【问题讨论】:
-
对我不一样;我得到
parse error: trailing garbage,好像它正在连接字符串。无论如何,你期待什么?您在寻找lapply(eg, fromJSON)吗? (我在jsonlite-1.5,如果这很重要的话。) -
谢谢@r2evans,jsonlite 给了我同样的错误,rjson 没有。我尝试了 lapply,但它产生的列表与项目数一样多。我的目标是为每个键创建一个列表,一个用于“1x”,一个用于“5y”。
-
这完全不同......您需要编辑您的问题并插入您想要的输出。答案可能会从我的
lapply建议开始,然后使用Reduce的东西可能会有用。 (对不起,我错过了你问题中的rjson::,我的错。) -
感谢@r2evans,添加了所需的输出。我会检查reduce(),我认为paste() 也可以。我试试看。
标签: json r database sqlite rjson