1

我一直在使用jsonlite并且我曾经simplifyDataFramefromJSON()函数中进行论证。mongolite包里有类似的吗?例如使用handler参数?我没有找到足够的文档来说明这个方法。

我有类似的记录

json <- '{"list": [{"x": 1, "y": "a"},{"x": 2, "y": "b"}],"numeric": 1.2}'

当我使用函数加载记录时,find()它会创建包含两列的数据框。第一列包含整个数据框作为元素。

df <- m$find()
df$list[[1]]
#   x y
# 1 1 a
# 2 2 b

我想要的是类似的东西

json %>% fromJSON(simplifyDataFrame = F) %>% as.data.frame.list
#   list.x list.y list.x.1 list.y.1 numeric
# 1      1      a        1        a     1.2

有解决方案吗?


编辑:

我知道我可以在循环中将数据框转换为列表。或者将数据转换成 JSON 格式,然后使用fromJSON(simplifyDataFrame = F). 对于我使用的数据大小,这两种方法都太慢了。请参阅我之前的问题

4

1 回答 1

4

尝试使用m$iterate()$batch()而不是m$find(). 它提供了您期望的输出。

json <- '{"list": [{"x": 1, "y": "a"},{"x": 2, "y": "b"}],"numeric": 1.2}'
json %>% fromJSON(simplifyDataFrame = F) %>% as.data.frame.list
  list.x list.y list.x.1 list.y.1 numeric
1      1      a        2        b     1.2
catch <- m$insert(json)
m$iterate()$batch() %>% as.data.frame.list
  list.x list.y list.x.1 list.y.1 numeric
1      1      a        2        b     1.2
于 2016-09-25T03:45:24.810 回答