《R语言数据分析》——1.2 文本文件编译测试平台

1.2 文本文件编译测试平台

从平面文件处理和导入一定规模的数据集到R还可以使用data.table包。该开发包语法格式与传统基于S的R语言不同,它也拥有大量的参考文档、页面以及针对各类数据库行为设计的令人印象深刻的优化操作的案例。我们将在本书第3章以及第4章中讨论类似应用和案例。

它提供了一个经用户优化后的R函数来处理文本文件:

相对之前的样例,数据的导入速度非常快,算法的处理结果存放在特定的data.table类中,如果有必要可以将其转换成传统的data.frame类型:

或者使用setDF函数,该函数也提供了非常快速和恰当的对象转换方法,这种转换并不需要将数据先复制到内存中。同样,也需要注意:

以上操作意味着data.table对象可以被当作data.frame类型并采用传统方式对其进行处理。保持导入的数据格式不变还是将其转换为data.frame类型要依据之后具体操作要求而确定。数据的聚集、合并和重构使用data.table格式的对象,其操作速度要比使用数据框这一标准的R数据格式更快。另外,用户也需要了解data.table的数据格式语法,例如,DT[i, j, by]表示告诉R“用i来选出行的子集,并计算通过by来分组的j”,我们将在第3章讨论相关语法。

现在,让我们比较一下之前提到的这些数据导入方法,到底它们有多快?最终的赢家看起来应该是data.table包中的fread函数。我们将通过设计下列测试函数来确定一些待测试的方法:

现在,为了节约一些时间,我们将以上这些函数各运行10次,而不是像之前进行数百次的迭代操作:

然后,按规定字体大小输出测试结果:

注意,这里我们处理的数据集大小都没超过实际物理内存,其中一些开发包被设计为能够处理大规模的数据集。这意味着,如果对read.table进行优化,能够获得比默认配置更好的处理性能。因此,如果要快速导入规模合适的数据集,推荐使用data.table包。

时间: 2024-09-17 03:32:59

《R语言数据分析》——1.2 文本文件编译测试平台的相关文章

《R语言数据分析》——3.3 测试

本节书摘来自华章出版社<R语言数据分析>一书中的第3章,第3.3节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 3.3 测试 正如在前述章节中讨论过的内容一样,借助microbenchmark包,我们可以在一台机器上重复执行若干遍函数,以获得一些可重现的性能测试结果. 现在,需要先定义作为测试基准的函数,以下一些函数都是从前面样例中挑选出来的: 前面已经介绍过dplyr包的summarise函数需要耗费一

《R语言数据分析》——导读

前 言 自20多年前发源于学术界以来,R语言已经成为统计分析的通用语言,活跃于众多产业领域.目前,越来越多的商业项目开始使用R,兼之R用户开发了数以千计易于上手的开发包,都使得R成为数据分析工程师及科学家最常用的工具. 本书将帮助读者熟悉R语言这一开源生态系统,并介绍一些基本的统计背景知识,以及一小部分相关的数学知识.我们将着重探讨使用R语言解决实际的问题. 由于数据科学家在数据的采集.清洗及重构上将耗费大量时间,因此本书首先将通过第一手实例来重点探讨从文件.数据库以及在线资源中导入数据的方法,

《R语言数据分析》——1.7 小结

本节书摘来自华章出版社<R语言数据分析>一书中的第1章,第1.7节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 1.7 小结 本章重点探讨了一些乏味但是很重要的工作,这些工作我们可能每天都要完成.对于每个数据科学项目而言,数据导入一定是第一步,因此要掌握数据分析就应该从如何有效地将数据导入到R会话中开始. 但是某种程度上,有效是个很含糊的概念:从技术角度出发,数据装载应该快速以免浪费我们的时间,但同时花几

《R语言数据分析》——2.2 其他流行的在线数据格式

本节书摘来自华章出版社<R语言数据分析>一书中的第2章,第2.2节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 2.2 其他流行的在线数据格式 在Web上数据通常采用XML或JSON两种格式存放,因为这两类文件都使用了人类可以理解的数据格式,从程序开发的角度而言也非常容易处理,同时也适合处理任意类型的层次化数据结构,而不像CSV文件一样仅能处理简单的表格数据. JSON最初源于JavaScript对象标识

《R语言数据分析》——第3章 数据筛选和汇总 3.1 去掉多余的数据

本节书摘来自华章出版社<R语言数据分析>一书中的第3章,第3.1节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 第3章 数据筛选和汇总 当我们从平面文件或数据库(第1章),或直接通过某些API从Web(第2章)完成数据导入后,在开始实际的数据分析操作之前,经常会有必要对原始数据展开聚集.转换及筛选操作. 本章,我们将关注以下内容: 对数据框对象进行行或列筛选 对数据进行汇总和聚集 除了基础的R方法,掌握通

《R语言数据分析》——3.5 小结

本节书摘来自华章出版社<R语言数据分析>一书中的第3章,第3.5节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 3.5 小结 本章,我们介绍了一些简单有效的应用于数据筛选和汇总的方法,也给出了筛选数据集行列数据的一些案例,并探讨了如何对数据进行汇总以进行进一步的分析.我们基本介绍完了绝大多数能够实现这些任务的最流行的方法,并在一个可重复的样例和测试平台上对这些方法的性能进行了比较. 在下一章节,我们将继续

《R语言数据分析》——第2章 从Web获取数据 2.1 从Internet导入数据集

本节书摘来自华章出版社<R语言数据分析>一书中的第2章,第2.1节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 第2章 从Web获取数据 实际项目中,经常会碰见所需数据不能从本地数据库或硬盘中获取而需要通过Internet获得的情况.此时,可以要求公司的IT部门或数据工程师按照下图所示的流程将原有的数据仓库扩展,从网络获取处理所需要的数据再倒入公司自己的数据库: 如果公司还没有建立ETL系统(抽取.转换装

《R语言数据分析》——2.3 从HTML表中读取数据

本节书摘来自华章出版社<R语言数据分析>一书中的第2章,第2.3节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 2.3 从HTML表中读取数据 万维网上传统的文本和数据以HTML页面为主,我们经常可以从例如HTML表找到一些有意思的信息,很容易就能通过复制和粘贴将数据转换成Excel电子表格,保存在磁盘上,稍后再导入到R中.但是这个过程比较费时间,也有点枯燥,因此可以考虑进行自动化处理. 可以借助前面提到

《R语言数据分析》——2.5 使用R包与数据源API交互

本节书摘来自华章出版社<R语言数据分析>一书中的第2章,第2.5节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 2.5 使用R包与数据源API交互 尽管我们能够读取HTML表格.CSV文件.JSON和XML数据,甚至某些HTML的原始文档,然后实现数据的存储,但花太多时间用来开发我们自己的工具意义并不大,除非我们再没有其他选择.因此,通常我们应该首先快速了解清楚Web Technologies以及Serv