首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛化tidyjson::spread_values

泛化tidyjson::spread_values
EN

Stack Overflow用户
提问于 2019-08-14 17:18:39
回答 1查看 58关注 0票数 0

考虑这个来自tidyjson GH page:的例子

代码语言:javascript
复制
#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就可以)来创建表格数据集:

代码语言:javascript
复制
features <- c("name", "age", "gender", "education", "income", ...)

# spread_values(features = jstring(features))

如何在spread_values步骤中概括列表;也就是说,在上面的示例中,如何将nameage压缩为一行代码?列的名称始终与JSON键相同。我尝试了apply系列(lapply/sapply)函数和for循环,但总是得到相同的赋值错误:

Error: unexpected '=' in...

干杯。

EN

回答 1

Stack Overflow用户

发布于 2019-08-14 17:58:31

查看此question

有很多答案,但最简单的可能是使用jsonlite包:

代码语言:javascript
复制
library(tidyjson)
library(dplyr)

json <- '[{"name": "bob", "age": 32}, {"name": "susan", "age": 54}]'

json %>%
  fromJSON

   name age
1   bob  32
2 susan  54
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57491730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档