首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将数据从JSON文件导入R

将数据从JSON文件导入R
EN

Stack Overflow用户
提问于 2010-04-11 23:54:39
回答 3查看 254.2K关注 0票数 180

有没有办法将数据从JSON文件导入到R中?更具体地说,该文件是一个JSON对象数组,其中包含字符串字段、对象和数组。RJSON包对于如何处理这个http://cran.r-project.org/web/packages/rjson/rjson.pdf并不是很清楚。

EN

回答 3

Stack Overflow用户

发布于 2014-09-05 05:51:33

jsonlite将把JSON导入到一个数据框中。它可以选择展平嵌套的对象。嵌套数组将是数据帧。

代码语言:javascript
复制
> library(jsonlite)
> winners <- fromJSON("winners.json", flatten=TRUE)
> colnames(winners)
[1] "winner" "votes" "startPrice" "lastVote.timestamp" "lastVote.user.name" "lastVote.user.user_id"
> winners[,c("winner","startPrice","lastVote.user.name")]
    winner startPrice lastVote.user.name
1 68694999          0              Lamur
> winners[,c("votes")]
[[1]]
                            ts user.name user.user_id
1 Thu Mar 25 03:13:01 UTC 2010     Lamur     68694999
2 Thu Mar 25 03:13:08 UTC 2010     Lamur     68694999
票数 100
EN

Stack Overflow用户

发布于 2010-04-12 03:18:20

另一个包是RJSONIO。要转换嵌套列表,lapply可以提供帮助:

代码语言:javascript
复制
l <- fromJSON('[{"winner":"68694999",  "votes":[ 
   {"ts":"Thu Mar 25 03:13:01 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}},   
   {"ts":"Thu Mar 25 03:13:08 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}}],   
  "lastVote":{"timestamp":1269486788526,"user":
   {"name":"Lamur","user_id":"68694999"}},"startPrice":0}]'
)
m <- lapply(
    l[[1]]$votes, 
    function(x) c(x$user['name'], x$user['user_id'], x['ts'])
)
m <- do.call(rbind, m)

提供了有关您示例中的投票的信息。

票数 31
EN

Stack Overflow用户

发布于 2013-06-10 12:44:10

如果网址是https,如用于亚马逊S3,则使用getURL

代码语言:javascript
复制
json <- fromJSON(getURL('https://s3.amazonaws.com/bucket/my.json'))
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2617600

复制
相关文章

相似问题

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