R语言数据清洗实战——复杂数据结构与list解析

2020-06-16 00:00:00 数据 函数 信息 递归 课程

数据清洗从来都不是一件简单的事情!

使用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)

相关文章