使用 rjson 处理 JSON

2024-03-14

我正在尝试处理一些 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 rjson 处理 JSON 的相关文章

  • 如何对工作区中的元素运行循环?

    gt ls 1 A anorex 1 anorexia B byMonth C clotting 8 counts d D d AD DelayByDay delayed glm D93 15 glmout groups h housing
  • 用闪亮的 R 设计 DT 中的展开行按钮

    我正在尝试设计 DT 中可用的展开行按钮的样式 样式可用here https datatables net examples api row details html 我用于创建数据表的代码是 library DT datatable cb
  • 使用 jquery 迭代 json 数组

    已经有一些帖子和我遇到了类似的问题 如何使用 PHP 中的 jQuery AJAX 调用迭代 JSON 数组 https stackoverflow com questions 6472338 how do i iterate over a
  • 如何缩放(标准化)每列内的 ggplot2 stat_bin2d 值(按 X 轴)

    我有一个 ggplot stat bin2d 热图 library ggplot2 value lt rep 1 5 1000 df lt as data frame value df group lt rep 1 7 len 5000 d
  • 从 postgres 表中提取 json 数组给出错误:无法从标量中提取元素

    通过使用jsonb array elements 提取出来的函数jsonb来自 Postgres 的数据数组 它给出了错误 无法从标量中提取元素 我认为这是因为NULL在返回调用中 添加了NULL检查状况但不工作 任何帮助表示赞赏 sele
  • dplyr 总结小计

    Excel 中数据透视表的一大优点是它们会自动提供小计 首先 我想知道 dplyr 中是否已经创建了任何可以实现此目的的东西 如果没有 实现它的最简单方法是什么 在下面的示例中 我按气缸和化油器的数量显示了平均排量 对于每组气缸 4 6 8
  • 如何在RcppParallel中调用用户定义的函数?

    受到文章的启发http gallery rcpp org articles parallel distance matrix http gallery rcpp org articles parallel distance matrix 我
  • Rails 4 - 将地址保存为数据库中的一列

    我是 Rails 新手 正在开发一个简单的应用程序 我的 ERD 中有一个名为 Client 的模型 并且希望保存每个客户的地址 我最初的想法是将地址保存为单独的字段 即 rails g model Client address first
  • MySQL JSON 存储与两个表

    与使用单独的元表相比 使用 JSON 在表中存储数据有什么好处吗 这是原始架构 Users Table UserId Username Etc 5 John Avatar Table Id UserId ImageName ImageTyp
  • SQL Server RODBC 连接

    有没有人有使用 RODBC 并连接到 MS SQL Server 2005 或 2008 的连接字符串示例 谢谢 library RODBC dbhandle lt odbcDriverConnect driver SQL Server s
  • 使用 SP 包中的 SpatialPoints() 转换坐标参考系 (CRS) 以创建空间数据框

    Issue 我有一个形状文件我已将其导入到 R 中 并为正在进行的分析选择了感兴趣的变量 我的最终目标是插值点数据 海豚 ID 获取海面温度 SST 堆栈中每个单独的光栅文件的值70 栅格来自名为 ncin SST 的对象 该对象是使用函数
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • 如果指定了多个存储库,install.packages 的行为是什么?

    从文档中并不清楚如果在 install packages 中指定了多个存储库会出现什么行为 我的直觉告诉我 它将尝试第一个存储库 如果找不到包 它将尝试第二个存储库 依此类推 不幸的是 情况似乎并非如此 我看到的是 只尝试了第一个 并返回错
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • RPostgreSQL 无法关闭连接

    我有一个闪亮的应用程序 使用它连接到数据库RPostgreSQL 在应用程序结束时 连接关闭 驱动程序应该被卸载 但我收到错误 警告我连接未关闭 代码看起来像这样 in the app R file but not in the serve
  • 如何使用 R 或 PowerShell 从文本文件中提取数据?

    我有一个包含如下数据的文本文件 This is just text Username SOMETHI C Text Account DFAG Finish time 1 JAN 2011 00 31 58 91 Process ID 202
  • 获取所有参数作为列表

    R 是否提供对象 函数 方法 关键字来获取所有函数参数 使用一个例子 function a b default 会提供a and b也 在函数环境内 有没有类似的说法list 这还包括a and b在结果中 或者换一种方式 简写list a
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R
  • 为什么 as.character() 返回日期列表中的整数?

    我惊讶地发现 R 中出现以下行为 as character c Sys Date gt 1 2018 02 05 as character list Sys Date gt 1 17567 为什么会出现这种情况 也就是说 显然 17567

随机推荐

  • 如何避免 AS3 代码混乱

    我使用 ActionScript 3 进行编程已经有一段时间了 我注意到我的代码的自然进展似乎采用一个巨大的文档类的形式 其中包含数十个成员变量 回调和舞台上对象的句柄 简而言之 有点乱 问题是 我真的没有找到解决办法 至少目前还没有 我在
  • 不使用提交按钮提交表单

    我正在使用表单提交数据以从数据库中获取记录 在表单中 我使用两个选择标签选项 因此 选择选项后 表单应提交不使用提交按钮 我正在等待选择输入后提交表单的响应 而不使用它应该自动提交的提交按钮 或任何按钮 创建一个函数来检查您想要的所有内容是
  • 在java中连接两个json对象

    我想连接多个 json 对象 我有两个像这样的json message test status 0 and this message test 2 status 1 结果必须是 message test status 0 message t
  • Kotlin 多平台“转到声明”转到反编译代码

    当使用 Android Studio 的 转到声明 功能 cmd 单击 时 尽管源位于我的项目中 但会显示反编译的源 kotlin MP 源位于另一个模块中 我可以使用 选择源 选项连接源 但是我必须对每个文件执行此操作 是否有用于连接到正
  • Azure B2C 问题和疑问

    我已经使用 Azure B2C 几天了 有一些问题和疑问 它创建的用于重定向登录的 URL 格式不正确 它包含两次问号 在网址之后 在配置文件名称之后再次 这会在您每次登录 注销等时导致 404 未找到错误 例如 它尝试重定向到的登录 UR
  • C# 空条件运算符和等待错误

    在 C 中使用新的 null 条件运算符时 我遇到了一个有趣的 System NullReferenceException 如果 MyObject 为 null 以下代码将给出 NullReferenceException await th
  • 如何从我的 MySQL 表中删除约束?

    我想从我的表中删除约束 我的查询是 ALTER TABLE tbl magazine issue DROP CONSTRAINT FK tbl magazine issue mst users 但我收到一个错误 1064 您的 SQL 语法
  • 从 RGB 整数转换为十六进制

    我拥有的是 R 255 G 181 B 178 我正在 C 中工作 对于 WP8 更具体地说 我想将其转换为十六进制数字以用作颜色 以设置 WriteableBitmap 的像素颜色 我正在做的事情如下 int hex 255 lt lt
  • 调整绘图标题(主要)位置

    我一直无法找到一种方法来使用 par 来调整 R 中绘图和主标题之间的 垂直 距离 在这个例子中 plot 1 1 main Title 我可以使用以下方法调整轴标题的位置 par mgp c 2 5 1 0 但我认为没有办法类似地调整主标
  • 在 Pyspark 中将稀疏向量转换为密集向量

    我有一个像这样的稀疏向量 gt gt gt countVectors rdd map lambda vector vector 1 collect SparseVector 13 0 1 0 2 1 0 3 1 0 6 1 0 8 1 0
  • 可编辑的同步排序顺序

    如何实现 Firestore 以便用户可以对数组中的项目进行排序并同步排序顺序 例如 在待办事项列表中订购项目 我可以想出两种选择 但他们感觉不是好主意 在指定索引处插入项目 但我不确定如何或是否可以使用 Firestore 做到这一点 每
  • 多次碰撞的 Sprite Kit 碰撞

    我已经查看并找到了单一碰撞的答案 但我正在寻找一种方法来检测多种类型的碰撞 我正在制作一个游戏 其中有 3 个我想要的碰撞 用户飞机与敌方子弹碰撞 用户子弹与敌机碰撞 我已经在工作 以及敌方子弹和用户子弹碰撞 我已设置并正确设置所有cate
  • python pandas 删除重复的列

    从数据框中删除重复列的最简单方法是什么 我正在通过以下方式读取具有重复列的文本文件 import pandas as pd df pd read table fname 列名称是 Time Time Relative N2 Time Tim
  • 为 QML TreeView 创建模型

    我正在尝试使用 QML TreeView 模型 Qt 的示例不包括如何创建模型 我读了这个post https stackoverflow com questions 40433038 qml treeview not updating a
  • ' 时,我得到: 1>LINK : fatal error LNK1104: 无法打开文件 'libboost_regex-vc100-mt-gd-1_39.lib'' aria-label='当尝试包含 '#include ' 时,我得到: 1>LINK : fatal error LNK1104: 无法打开文件 'libboost_regex-vc100-mt-gd-1_39.lib''> 当尝试包含 '#include ' 时,我得到: 1>LINK : fatal error LNK1104: 无法打开文件 'libboost_regex-vc100-mt-gd-1_39.lib'

    不知道为什么我得到这个 我从下载了库here http www boostpro com download虽然我有一个名为 libboost regex vc90 mt gd 1 39 lib 的库 但我没有一个名为 libboost re
  • 在Delphi中生成三个随机字符

    您好 我正在尝试使用 Delphi 中的函数生成三个随机字符 代码如下 function generate cantidad integer string const letras mi abcdefghijklmnopqrstuvwxyz
  • VS中跳过所有断点的快捷键是什么?

    当我处于断点时 如果我想忽略所有其余断点并继续前进 我应该使用什么快捷方式 您可以选择 禁用所有断点 来自Debug menu This and then continue with F5 您可以将其设置为键盘快捷键工具 选项 键盘
  • 解释来自 Android 相机 onPictureTaken(byte[] data) 的原始图像数据

    我正在使用 Camera 类来拍照 并希望对 onPictureTaken 中的图像进行一些处理 如何解释字节数组 是RGB格式还是其他格式 参考文献说这取决于 Camera Parameters 相机参数 http developer a
  • 在 Kivy 中嵌入 YouTube 视频

    我想使用 YouTube URL 将视频嵌入到 Kivy 的小部件中 那可能吗 该文档给出了 VideoPlayer 的示例 http kivy org docs api kivy uix videoplayer html http kiv
  • 使用 rjson 处理 JSON

    我正在尝试处理一些 JSON 格式的数据 rjson fromJSON成功导入数据并将其放入一个相当笨重的列表中 library rjson y lt fromJSON file http api lmiforall org uk api