如何用R语言读取Excel、PDF和JSON文件?

转自:微点阅读  https://www.weidianyuedu.com

导读:本文将讨论Excel、PDF等文件的读取,以及相应函数的参数设置。

如需转载请联系大数据

下图总结了主要程序包,希望读者在日常练习和工作中遇到不同格式的文件时,能够瞬间反应出读取该格式所需的包及对应的函数。(限于篇幅,本文未包含图中“平面文档格式”这部分的内容,如果你有兴趣,可以继续关注大数据后续文章。)

▲不同格式的数据文件读取所用的R包

01 readxl:Excel文件读取

readxl是微软Excel文件读取的必备R包,是Hadley Wickham、Jennifer Bryan以及其他6名成员合作完成的经典程序包之一。

值得一提的是,该包的开发者之一兼实际维护者Jennifer Bryan(网络上多称她为Jenny Bryan),可以称得上是与Hadley齐名且为数不多的女性R语言神级人物。可能是因为其身为大学教授,因此她总能够用很生动有趣的方式将复杂的问题简化成通俗易懂的知识传递给“小白”,强烈建议有英文基础的读者能够搜集一些她的主题演讲或者书籍。

更新后的readxl包中虽然也还是只有5个函数,不过功能却比以前的版本更强大了。对于起初的版本,数据会被读取成常见的data.frame格式,而对于现在的版本,读取后的数据集格式则为tibble,可以理解为提升版的data.frame。

readxl包括两个探测性函数excel_format和excel_sheets,一个引用例子的函数readxl_example,新加入的读取特定单元格的函数cell-specification以及最重要的read_excel函数。本节将着重讨论read_excel的参数设置及用法技巧。

数据导入函数read_excel主要参数及功能对照:

path

数据文件路径+文件名,也可以是一个url

sheet

工作表序号或名称,默认值为第一个工作表

range

读取指定区间,可以限定函数读取原始Excel文件的范围,例如,“A1:D100”会读取这个区间中的所有单元格,包括空白单元格。“工作表1!A1:D100”会读取名为“工作表1”中的该区间。这个参数的优先级高于参数 "skip"、"n_max"、"sheet"

col_names

该参数具有三个选择,具体如下。

1)为真(TRUE),原始数据文件的第一行被用作列名,且不在数据集内。

2)为假(FALSE),数据列名被自动赋值成X__1、X__2、X__3等。

3)自定义字符串向量传给参数。此时字符串向量会被用作列名,而原数据文件的第一列将被保存到数据集的第一列。如果有默认列名的话,则会发出警告,并自动赋值成X1、X2、X3等,但不会影响读取进程。重复的列名也会发出警告,并且会在重复列名前加数字序号以做区分

col_types

列数据类型。可以有两种传参形式,具体如下。

1)NULL,默认值。函数会自动解析每一列数据的类型。

2)指定变量类型。字符串参照为:"skip"、"guess"、"logical"、"numeric"、"date"、"text"或"list"。需要注意的是,如果仅指定一个数据类型(例如,"numeric")那么所有的变量都会被读成字符型数据。如果指定一列为"skip",那么这一列就不会被读取到R中来。新增加的"list"属性对处理有经纬度的变量列将会有很大帮助

na

原始数据文件中是否有一些字符需要用na来代替。空白单元格被默认作为默认值

trim_ws

每个数据值前后的空白是否处理掉,取值为真或假

skip

是否跳过几行读取原始数据文件,默认取值为0,表示不跳过;可以传参任意数字

n_max

最大读取行数

首先还是需要加载readxl包。尽管Hadley从20

你可能感兴趣的:(编程语言,JavaScript,r语言,json,开发语言)