我知道我已经可以使用jsonlite和rjson了。但是,假设我有一个超过1000个jsons的文件夹。将这些全部读入R数据帧的最佳方法是什么?
json_file <- fromJSON(file = "myjson.json")
答案 0 :(得分:1)
rio
包可以毫不费力地将zipfile的内容读入数据帧列表。
首先,让我们使用rio
和内置zip
函数创建可重现的示例。
library(rio)
export(data.frame(x=1:2, y=3:4), "foo1.json")
#> Loading required namespace: jsonlite
export(data.frame(x=5:6, y=7:8), "foo2.json")
zip("foo.zip", c("foo1.json", "foo2.json"))
所以现在我们有一个带有一些json文件的zipfile。要简单地导入:
foo_list <- import_list("foo.zip")
现在我们有一个具有相同结构的数据帧列表。现在我们通常会把它们放在一起:
do.call(rbind, foo_list)
#> x y
#> foo1.1 1 3
#> foo1.2 2 4
#> foo2.1 5 7
#> foo2.2 6 8
答案 1 :(得分:-1)
请注意,这取决于您的.jsons具有相同的标题,允许您轻松地将它们绑定在一起。
lf=Sys.glob("*.json")
combdf <- data.frame(colA=(), colB=())
currdf <- data.frame()
for (i in length(lf)){
currdf <- fromJSON(file = lf[i])
combdf <- rbind(combdf, currdf)
}