标签:
设计目标:更方便地在R中操作list对象
特性:
基于表达式的用法
eval(expr,envir,enclos) expr 表达式 envir 计算环境(environment)或参数列表(list) enclos 当envir为list时上一级符号搜索环境(environment) list.map(data,substr(Name,1,1)) list.filter(data,"reading" %in% Interests) #rlist高阶函数:分组 list.group(1:10,.%%2==0) #rlist高阶函数:分类 list.class(people,Interests) #rlist高阶函数:频率表 list.table(1:1000,.%%3) #rlist高阶函数:频率表 list.table(1:1000,.%%3)
管道操作符:%>>%
大部分函数的第一个参数都是数据参数
plot(density(sample(mtcars$mpg,size = 10000,replace = TRUE), kernel = "gaussian"),col = "red", main = "density of mpg (bootstrap)") library(pipeR) mtcars$mpg %>>% sample(size = 10000,replace = T) %>>% density(kernel = "gaussian") %>>% plot(col = "red",main = "density of mpg (bootstrap)")
管道对象:Pipe
library(pipeR) Pipe(mtcars$mpg)$ sample(size = 10000,replace = T)$ density(kernel = "gaussian")$ plot(col = "red", main = "density of mpg (bootstrap)")
管道函数:pipeline()
pipeline(mtcars$mpg, sample(size = 10000,replace = TRUE), density(kernel = "gaussian"), plot(col = "red",main = "density of mpg (bootstrap)")) pipeline({ mtcars$mpg sample(size = 10000,replace = T) density(kernel = "gaussian") plot(col = "red",main = "density of mpg (bootstrap)") })
数据清洗:JSON、List、DataFrame
DataFrame是R中的结构化数据结构,List是R中的非结构化数据。在处理json时,有三种选择,jsonlite、rjson以及RJSONIO。在实际处理字符串中,需要注意R中字符串的转义问题。
jsonlite
jsonlite可以一步将json转成DataFrame再从DataFrame转成json,此外,jsonlite还完美支持UTF-8,在json字符串错误时会有明显的错误提示。
jsonlite的劣势是当出现双层json时,jsonlite会将json转成DataFrame格式的list,这直接导致在用length()或者dim()求内层JSON的维度出现错误。
jsonlite::fromJSON("{\"x\":\"量化投资\",\"y\":\"andywu\"}") $x [1] "量化投资" $y [1] "andywu"
rjson
rjson和jsonlite最大不同在于,rjson将json转化为一个list,而list是R语言中非结构化数据的事实标准,类似python中的dict,或者MATLAB中的cell。
rjson在json转化中直接保存所有的浮点型数据,而jsonlite和RJSONIO则可以通过参数控制保留若干位小数的精度。
RJSONIO
RJSONIO允许传入没有转移符号的JSON字符串,并且支持将缺失值(NA)直接转成Null,RJSONIO只支持Unicode,不支持UTF-8
rlist与高阶函数
rlist支持高阶函数表达式,借鉴了Python、Scala等语言中的MapReduce模型,rlist也为list提供了map、filter、reduce、group、join、search、sort等高级数据操作。
rlist扩展包充分利用了R语言中list对象的特性,定义了一整套函数帮助用户灵活快速地按要求处理各种非结构化数据,同时结合pipeR包中管道操作符的使用,使R程序更加具有可读性,应用更加人性化。
rlist提供的操作:
为了方便在R中可视化JSON数据,jsonview将js中的jsonviewer库引入到R中。
传入list或者json字符串做非结构化数据的可视化
标签:
原文地址:http://www.cnblogs.com/hanqing/p/5479768.html