《机器学习与数据科学(基于R的统计学习方法)》——2.8 读取JSON文件
本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.8节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.8 读取JSON文件为机器学习项目读取数据时,另一种你可能遇到的数据文件类型是JSON,也就是JavaScript Object Notation。JSON是基于文本的开源标准,为创造人类可读的数据交换而设计。它经常和流行的Ajax网络编程技术一同使用。R有两个流行的包能够连接JSON数据文件:rjson和RJSONIO。rjson没有使用R的S3或S4系统,所以它不太容易扩展。同时,rjson也不使用向量化操作,这导致它处理重要数据时速度很慢。同样的,在将JSON数据读入R时,rjson也有点慢并且不能扩展到海量数据。因此,在本节中我们会使用RJSONIO。
我们提供了一个把JSON文件读进R的数据连接案例,第一步需要获得一个URL来下载SFParkingMeters数据集的JSON版本(JSON是San Francisco Data网站提供的另一种文件类型)。大多数的工作由RJSONIO包中的fromJSON()函数来完成。这个函数能将JSON数据内容转换成R对象,以便进行更深入的分析。
下面的R代码首先将JSON URL保存在变量fileURL中。下一步,我们在fromJSON()函数中提交URL,返回数据存储在一个嵌套列表的实体中,包括两个基本的部分:meta和data。我们只需要data部分,所以我们把它存储在列表实体parkdata中。这里的窍门是知道怎样将嵌套列表拆成变量的单独值。为了做到这一点,你需要用parkdata[[1]]来看第一行的观测值,尝试识别一些数据,然后标注这些值的索引,以便后续进行查阅来构造一个数据框。我们可以使用列表处理函数sapply()将数据从列表中抽取出来。最后,我们需要构造一个新的数据框park_df,里面包含初识JSON文件的3个变量:CAP_COLOR、METER_TYPE和STREETNAME。现在,JSON数据以一种合适的数据框的形式存在,我们可以对数据进行常用的分析:
library(RJSONIO) fileURL - "https://data.sfgov.org/api/views/7egw-qt89/rows. json?accessType=DOWNLOAD" parkdata - fromJSON(fileURL)[[2]] park_df = data.frame( CAP_COLOR = sapply(parkdata, function(x) x[[12]]), METER_TYPE = sapply(parkdata, function(x) x[[13]]), STREETNAME = sapply(parkdata, function(x) x[[20]]) head(park_df) CAP_COLOR METER_TYPE STREETNAME 1 Grey SS CHESTNUT ST 2 Green SS CHESTNUT ST 3 Yellow SS CHESTNUT ST 4 Grey SS COLUMBUS AVE 5 Grey SS COLUMBUS AVE
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- Coursera台大机器学习技法课程笔记01-linear hard SVM
- 机器学习中的特征选择
- 机器学习与优化关系、凸集、凸函数简介
- 机器学习笔记 - 基于深度学习(HomographyNet)的图像单应性估计
- 机器学习笔记 - 什么是元学习?
- 机器学习笔记 - 2、CNN中的参数计算
- [转]IOS下如何判断机器是否越狱
- atitit 文件搜索 映象文件夹结构模式.docxAtitit 百度网盘 文件 与跨机器 文件 搜索 查询 检索 解决方案 最小化索引法 映象文件夹结构模式. 1. 生成文件夹 结构信息1
- ML与math:机器学习与高等数学基础概念、代码实现、案例应用之详细攻略——基础篇
- DataScience:机器学习中特征工程之WOE编码(离散变量编码/有监督)的简介、计算过程、案例应用之详细攻略
- 人工智能和机器学习的基本实现过程总结
- 机器学习(十五):异常检测之隔离森林算法(IsolationForest)
- 机器学习——批量梯度下降法、随机梯度下降法、小批量梯度下降法
- 加州理工大学公开课:机器学习与数据挖掘_线性模型(第三个教训)
- Google声明机器学习在自己定制的芯片比如普通的GPU和CPU快15到30倍