《数据科学:R语言实现》——2.4 扫描文本文件
本节书摘来自华章出版社《数据科学:R语言实现》一 书中的第2章,第2.4节,作者:R for Data Science Cookbook 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.4 扫描文本文件
在之前的教程中,我们介绍了如何使用read.table和read.csv加载数据到R进程中。然而,read.table和read.csv只适用于列数固定,数据不多的情形。为了在数据处理过程中更加灵活,我们会介绍如何使用函数scan从文件中读取数据。
准备工作
在本教程中,你需要完成之前的教程,并下载snp500.csv到当前目录。
实现步骤
执行下列步骤,扫描CSV文件中的数据。
1.首先,你可以使用函数scan读取snp500.csv中的数据:
运行原理
与read.table和read.csv相比,函数scan更加灵活,数据读取也更加高效。这里,我们在what参数中,以列表的形式指定字段名和每个字段的支持类型。在这个例子中,第1个字段是字符类型,其他字段都是数值类型。因此,我们可以给Date列设定两个单(或双)引号,给其他列设定为0。然后,因为我们需要忽略列名行,并自动给字段数少于列数的任何一行添加空字段,我们可以设定skip为1,fill为True。
现在,我们可以使用内置的函数查看数据。这里,我们使用mode获取对象的类型,使用str展示数据的结构。
更多技能
某些情况下,数据是通过固定宽度分隔,而不是通过固定分隔符分隔的。为了指定每一列的宽度,你可以使用函数read.fwf。
1.首先,你可以使用download.file从作者的GitHub网页上下载weather.op: