- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试处理一些 JSON 格式的数据。 rjson::fromJSON
成功导入数据并将其放入一个非常笨重的列表中。
library(rjson)
y <- fromJSON(file="http://api.lmiforall.org.uk/api/v1/wf/predict/breakdown/region?soc=6145&minYear=2014&maxYear=2020")
str(y)
List of 3
$ soc : num 6145
$ breakdown : chr "region"
$ predictedEmployment:List of 7
..$ :List of 2
.. ..$ year : num 2014
.. ..$ breakdown:List of 12
.. .. ..$ :List of 3
.. .. .. ..$ code : num 1
.. .. .. ..$ name : chr "London"
.. .. .. ..$ employment: num 74910
.. .. ..$ :List of 3
.. .. .. ..$ code : num 7
.. .. .. ..$ name : chr "Yorkshire and the Humber"
.. .. .. ..$ employment: num 61132
...
但是,由于这本质上是表格数据,所以我希望将其放在简洁的 data.frame
中。经过反复试验,我得到了结果:
y.p <- do.call(rbind,lapply(y[[3]], function(p) cbind(p$year,do.call(rbind,lapply(p$breakdown, function(q) data.frame(q$name,q$employment,stringsAsFactors=F))))))
head(y.p)
p$year q.name q.employment
1 2014 London 74909.59
2 2014 Yorkshire and the Humber 61131.62
3 2014 South West (England) 65833.57
4 2014 Wales 33002.64
5 2014 West Midlands (England) 68695.34
6 2014 South East (England) 98407.36
但该命令似乎过于繁琐和复杂。有更简单的方法吗?
最佳答案
这里我恢复了列表的几何形状
ni <- seq_along(y[[3]])
nj <- seq_along(y[[c(3, 1, 2)]])
nij <- as.matrix(expand.grid(3, ni=ni, 2, nj=nj))
然后使用nij
的行作为嵌套列表的索引提取相关变量信息
data <- apply(nij, 1, function(ij) y[[ij]])
year <- apply(cbind(nij[,1:2], 1), 1, function(ij) y[[ij]])
并使其成为更友好的结构
> data.frame(year, do.call(rbind, data))
year code name employment
1 2014 1 London 74909.59
2 2015 5 West Midlands (England) 69132.34
3 2016 12 Northern Ireland 24313.94
4 2017 5 West Midlands (England) 71723.4
5 2018 9 North East (England) 27199.99
6 2019 4 South West (England) 71219.51
关于json - 使用 rjson 处理 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17674623/
我的 rjson 包随机不起作用。例如,它有时工作正常,有时无法加载。不知道为什么。 我收到此错误。 Error in library("rjson") : there is no pack
我有一个包含多个列的 sqlite 数据库文件。其中一列中嵌入了一个 JSON 字典(带有两个键)。我想将 JSON 列提取到 R 中的数据框中,在单独的列中显示每个键。 我试过 rjson::fro
rjson::fromJSON() 读取文件不正确,而 jsonlite::fromJSON() 读取正常。这是一个示例示例。 文件 test.json 内容: {"name": "Sanjay",
更新: tl; dr是RJSONIO不再是两个选项中最快的一个。相反,rjson现在更快了。 查看评论以进一步确认结果 我的印象是RJSONIO应该比rjson更快。 但是,我得到相反的结果。 我的问
我正在尝试处理一些 JSON 格式的数据。 rjson::fromJSON 成功导入数据并将其放入一个非常笨重的列表中。 library(rjson) y data.frame(year, do.c
我花了很长时间使用 R 来尝试抓取 NBA 数据,到目前为止我都是通过反复试验来完成的,但最后我发现了这个 documentation 。前段时间我在抓取 shotchartdetail 时遇到了一些
让我们: desired_output="{a:'1', b:'foo'}" D = list(a=1, b="foo") 然后: out = toJSON(D) out "{\"a\":1,\"b\
给出以下 R 代码: library(rjson) x <- c(3:5) toJSON(x) 它产生: [1] "[3,4,5]" 当我期待类似的事情时: "[3,4,5]" 我是 R 新手,我想这
我当然可以在 R 中解决这个下游的问题,但我认为与让 rjson 以某种方式为我做这件事相比,这会更加困惑。可以做到吗? 最佳答案 两个想法: 看看RJSONIO相反,并使用它的 fromJSON .
我是一名优秀的程序员,十分优秀!