考虑这个来自tidyjson GH page:的例子
#devtools::install_github("sailthru/tidyjson")
library(tidyjson)
library(dplyr)
json <- '[{"name": "bob", "age": 32}, {"name": "susan", "age": 54}]'
json %>%
as.tbl_json %>%
gather_array %>%
spread_values(
name = jstring("name"),
age = jnumber("age")
)
# A tibble: 2 x 4
document.id array.index name age
* <int> <int> <chr> <dbl>
1 1 1 bob 32
2 1 2 susan 54我已经提取了所有的JSON键并将其放入一个向量中。我正在寻找一种高效的解决方案(只需jstring就可以)来创建表格数据集:
features <- c("name", "age", "gender", "education", "income", ...)
# spread_values(features = jstring(features))如何在spread_values步骤中概括列表;也就是说,在上面的示例中,如何将name和age压缩为一行代码?列的名称始终与JSON键相同。我尝试了apply系列(lapply/sapply)函数和for循环,但总是得到相同的赋值错误:
Error: unexpected '=' in...
干杯。
发布于 2019-08-14 17:58:31
查看此question
有很多答案,但最简单的可能是使用jsonlite包:
library(tidyjson)
library(dplyr)
json <- '[{"name": "bob", "age": 32}, {"name": "susan", "age": 54}]'
json %>%
fromJSON
name age
1 bob 32
2 susan 54https://stackoverflow.com/questions/57491730
复制相似问题