R语言数据清洗实战——复杂数据结构与list解析
数据清洗从来都不是一件简单的事情!
使用httr包结合浏览器抓包工具进行网页数据抓取虽然非常方便,但是获取的数据后期处理工作量却非常庞大的。
因为大部分json数据包返回之后都会被转换为R语言中的非结构化数据类型——list。
也就是说,对于list数据结构的处理熟练程度,将会决定着你在数据清洗中所花费的时间与精力。
list数据结构本身即可简单也可复杂,当list中存在递归结构时,其处理难度就大大增加了。(不幸的是大部分json数据包都是递归结构的)
对于list数据结构的处理,你可以通过手动构造循环来处理(无论是自己书写显式的循环还是借助矢量化函数)。
当然也可以借助很成熟的第三方list操作包,其中rlist就是目前存在的非常的用于处理list数据结构的扩展包。
以下是昨天使用httr包抓取的知乎live课程信息的json数据包,我会通过该份案例的清洗实战,来给大家演示list数据结构处理的一般流程,同时尝试引入新的rlist包(其实我们之前一节已经用过它的一个函数了,保存json的时候用过list.save,不知道大家还有印象不?)
导入json数据包:
library("dplyr")
library("jsonlite")
library("magrittr")
library("plyr")
library("rlist")
homefeed<-fromJSON("E:/git/DataWarehouse/File/homefeed.json",simplifyVector=FALSE)
相关文章