您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据流语言 >

数据流编程教程:R语言与DataFrame

发布时间:2019-06-12 00:00 来源:未知 编辑:admin

  DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量。

  readr是利用C++和RCpp编写的,所以执行的速度是相当快的,不过相对于直接用C语言写的data.table::fread()就稍微慢大概1.2-2倍左右。在实际使用中,data.talbe::fread()的读取速度可以比原生的read.csv有3-10倍的提升速度。

  DBI是一个为R与数据库通讯的数据库接口。相当于Java里面的DAO,Python里的Torndb和Tornlite,方便多种关系型数据库的SQL请求。其中最亮眼的是,R中的DataFrame和数据库之前可以以整个数据框插入的形式插入数据而不需要再拼接SQL语句。

  tidyr是一个数据清洗的新包,正在取代reshape2、spreadsheets等包。清洁的数据在数据处理的后续流程中十分重要,比如数据变化(dplyr),可视化(ggplot2/ggvis)以及数据建模等。tidyr主要提供了一个类似Excel中数据透视表(pivot table)的功能,提供gather和spread函数将数据在长格式和宽格式之间相互转化,应用在比如稀疏矩阵和稠密矩阵之间的转化。此外,separate和union方法提供了数据分组拆分、合并的功能,应用在nominal数据的转化上。

  类似于Python中的json库,参考前文 [[原]数据流编程教程:R语言与非结构化数据共舞](,我们可以知道jsonlite是一个标准的json转化库,依赖于jsonlite我们可以自由地在JSON和DataFrame之间相互转化。

  dplyr包是现在数据流编程的核心,同时支持主流的管道操作%%,主要的数据处理方法包括:

  更多详细操作可以参考由SupStats翻译的,比Python的老鼠书直观很多。

  [参考前文 [原]数据流编程教程:R语言与非结构化数据共舞](,我们知道,区别于dplyr包,rlist包是针对非结构化数据处理而生的,也对以list为核心的数据结构提供了类似DataFrame的查询、管道操作等等方法。

  purrr向Scala这样的具有类型系统的函数式编程语言学习,为data frame的操作提供更多的函数式编程方法,比如map、lambda表达式。此外,purrr引入了静态类型,来解决原生的apply函数族类型系统不稳定的情况。

  我遇到过一个非常头疼的apply函数的问题:apply内的表达式计算结果不一致。

  ggplot2 是一个增强的数据可视化R包,帮助我们轻松创建令人惊叹的多层图形。它的设计理念类似于PhotoShop,具体参数包含设计对象、艺术渲染、统计量、尺寸调整、坐标系统、分片显示、位置调整、动画效果等等。

  ggvis是吸收了的精华,目标旨在配合shiny打造动态可 交互的可视化组件。ggvis最明显的区别就是在作图时直接支持%%的管道操作,比如:

  在机器学习的本质其实就是各种姿势的回归,而在R中的各种回归分析往往不会返回一个整齐的data frame 结果。:

  这时候broom包就派上用场了,直接将统计结果转化为data frame格式:

  针对这几个问题,data.table应运而生。data.table兼容data.frame,这意味着之前对data.frame的操作我们可以完全保留,并且支持更多方便的数据操作方法。

  值得一提的是data.table引入了全新的索引形式,大大简化了data frame的分片形式,提供接近于原生矩阵的操作方式并直接利用C语言构造底层,保证操作的速度。

  DT包是谢溢辉老师的大作,为data frame数据提供了非常好的可视化功能,并且提供了筛选、分页、排序、搜索等数据查询操作。

  DDF的全称是 Distributed Data Frame, 也就是分布式数据框。DDF用一个统一的跨引擎API简化了多数据源的分析操作,进一步将data frame底层的分布式傻瓜化。

  在R中使用DDF,我们不需要修改之前任何的代码,并且绕过Hadoop的限制,就可以让data frame格式的数据,自动获得分布式处理的能力!

http://istighcomputing.com/shujuliuyuyan/302.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有