DataFrame
DataFrame是一个表格大概雷同二维数组的布局,它的各行表现一个实例,各列表现一个变量。
一.DataFrame数据流编程
二.数据读取readr/httr/DBI1.readrreadr简化了我们读取多种格式表格型数据的方法,包罗分割文件withread_delim(),read_csv()、read_tsv()、read_csv2()、固定宽度文件读取的read_fwf()、read_table()以及read_log()来读取Web日记文件。在参数设置方面是和原生的read.xxx()函数族是看齐的。
readr是利用C++和RCpp编写的,以是实行的速率是相称快的,不外相对于直接用C语言写的data.table::fread()就轻微慢大概1.2-2倍左右。在实际利用中,data.talbe::fread()的读取速率可以比原生的read.csv有3-10倍的提拔速率。
2.httr
httr是一个高级的网络哀求库,雷同于Python中的Tornado和Requests,除了提供根本的Restful接口计划功能,比如GET(),HEAD(),PATCH(),PUT(),DELETE()和POST(),还提供了OAuth的调用,比如oauth1.0_token()和oauth2.0_token()。而且httr还提供了诸如session、cookie、SSL、header、proxy、timeoutd等更过高级管理功能。固然你可以用它来做简单的爬虫应用,假如必要更高级的爬虫,我们必要投入rvest的度量来支持诸如xpath等高级爬虫特性。
3.DBI
DBI是一个为R与数据库通讯的数据库接口。相称于Java内里的DAO,Python里的Torndb和Tornlite,方便多种关系型数据库的SQL哀求。此中最亮眼的是,R中的DataFrame和数据库之前可以以整个数据框插入的情势插入数据而不必要再拼接SQL语句。
以下是一个官方文档的示例:
三.数据洗濯tidyr/jsonlite1.tidyr
tidyr是一个数据洗濯的新包,正在代替reshape2、spreadsheets等包。干净的数据在数据处理惩罚的后续流程中非常紧张,比如数据变革(dplyr),可视化(ggplot2/ggvis)以及数据建模等。tidyr重要提供了一个雷同Excel中数据透视表(pivottable)的功能,提供gather和spread函数将数据在长格式和宽格式之间相互转化,应用在比如希罕矩阵和稠密矩阵之间的转化。别的,separate和union方法提供了数据分组拆分、归并的功能,应用在nominal数据的转化上。
2.jsonlite
雷同于Python中的json库,参考前文[[原]数据流编程教程:R语言与非布局化数据共舞](https://segmentfault.com/a/11...,我们可以知道jsonlite是一个标准的json转化库,依靠于jsonlite我们可以自由地在JSON和DataFrame之间相互转化。
四.数据处理惩罚dplyr/rlist/purrr1.dplyr
dplyr包是如今数据流编程的核心,同时支持主流的管道操纵%%,重要的数据处理惩罚方法包罗:
(1)高级查询操纵:
select():按列变量选择
filter():按行名称分片
slice():按行索引分片
mutate():在原数据集末了一列追加一些数据集
summarise():每组聚合为一个小数量的汇总统计,通常连合gruop_by()利用
arrange():按行排序
(2)关联表查询
inner_join(x,y):匹配x+y
left_join(x,y):全部x+匹配y
semi_join(x,y):全部x在y中匹配的部分
anti_join(x,y):全部x在y中不匹配的部分
(3)聚集操纵
intersect(x,y):x和y的交集(按行)
union(x,y):x和y的并集(按行)
setdiff(x,y):x和y的补集(在x中不在y中)
更多具体操纵可以参考由SupStats翻译的数据再加工速查表,比Python的老鼠书直观很多。
2.rlist
[参考前文[原]数据流编程教程:R语言与非布局化数据共舞](https://segmentfault.com/a/11...,我们知道,区别于dplyr包,rlist包是针对非布局化数据处理惩罚而生的,也对以list为核心的数据布局提供了雷同DataFrame的高级查询、管道操纵等等方法。
3.purrr
purrr向Scala如许的具有高级范例体系的函数式编程语言学习,为dataframe的操纵提供更多的函数式编程方法,比如map、lambda表达式。别的,purrr引入了静态范例,来办理原生的apply函数族范例体系不稳固的环境。
我碰到过一个非常头疼的apply函数的题目:apply内的表达式盘算结果不同等。
于是改因素步盘算才华得到精确答案。
假如利用purrr包就可以很好的办理这一题目。参考Wisdom'sQuintessence:PurrrpackageforRisgoodforperformance的例子:
具体利用可以参考RstudioBlog:purrr0.2.0。
五.数据可视化ggplot2/ggvis1.ggplot2
ggplot2是一个加强的数据可视化R包,资助我们轻松创建令人惊叹的多层图形。它的计划理念雷同于PhotoShop,具体参数包罗计划对象、艺术渲染、统计量、尺寸调解、坐标体系、分片表现、位置调解、动画结果等等。
更多操纵可以查察ggplot2与数据可视化速查表和官方文档
实战可以参考RGraphicsCookbook一书。
2.ggvis
ggvis是吸取了ggplot2、vega以及d3的英华,目标旨在共同shiny打造动态可交互的可视化组件。ggvis最显着的区别就是在作图时直接支持%%的管道操纵,比如:
ggplot2与ggvis的关系雷同于plyr与dplyr的关系,都是一种演化过程。
六.数据建模broom1.broom
在呆板学习的本质着实就是各种姿势的回归,而在R中的各种回归分析每每不会返回一个整洁的dataframe结果。比如:
这时间broom包就派上用场了,直接将统计结果转化为dataframe格式:
glance()函数,返回dataframe格式的部分参数结果
七.DataFrame优化
1.data.table
众所周知,data.frame的几个缺点有:
(1)大数据集打印迟钝
(2)内部搜刮迟钝
(3)语法复杂
(4)缺乏内部的聚合操纵
针对这几个题目,data.table应运而生。data.table美满兼容data.frame,这意味着之前对data.frame的操纵我们可以完全保存,而且支持更多方便的数据操纵方法。
data.table还参考了NoSQL中盛行的Key-Value情势,引入了setkey()函数,为数据框设置关键字索引。
值得一提的是data.table引入了全新的索引情势,大大简化了dataframe的分片情势,提供靠近于原生矩阵的操纵方式并直接利用C语言构造底层,包管操纵的速率。
2.对比操纵
对比data.table和dplyr的操纵:
3.apply函数族
4.join操纵
5.拼接操纵
更多操纵详情可查察data.table速查表。
八.DataFrame可视化
DT包是谢溢辉老师的大作,为dataframe数据提供了非常好的可视化功能,而且提供了筛选、分页、排序、搜刮等数据查询操纵。
九.分布式DataFrame
DDF的全称是DistributedDataFrame,也就是分布式数据框。DDF用一个同一的跨引擎API简化了多数据源的分析操纵,进一步将dataframe底层的分布式傻瓜化。
在R中利用DDF,我们不必要修改之前任何的代码,而且绕过Hadoop的绝对限定,就可以让dataframe格式的数据,主动得到分布式处理惩罚的本领!
DataFrame在R、Python和Spark三者中的接洽
参考资料
1.Medium:6DifferencesBetweenPandasAndSparkDataFrames
2.Quora:WhatarethedifferencesofDataFramebetweenRandPandas?
3.RTutorial:DataFrame
4.PythonPandas官方文档
5.知乎:R语言读大数据?
6.知乎的高分问答:怎样利用ggplot2?
7.RGraphsCookbook
8.SparkR:DistributeddataframeswithSparkandR
9.Vimeo:RDataStructures
10.AnnouncingSparkR:RonSpark
11.amplab:SparkRRfrontendforSpark
12.codementor:dataframeoperationswithSparkR
13.SparkSummit:DistributedDataFrame(DDF)SimplifyingBigDataFor14.TheRestOfUs
15.SparkR官方文档
16.粉丝日记:超高性能数据处理惩罚包data.table
17.yhatggplot2doc
18.FastDataProcessingwithSpark,2ndEdition
HarryZhu的FinanceR专栏:https://segmentfault.com/blog...
本文链接:https://addon.ciliseo.com/ju-he-sou-gua-zhan-qun-ju-he-sou-gua-ruan-jian.html
下一篇:国产ph计品牌排行_入口ph计
网友评论