1.4 常用包及包的安装、使用与卸载

R包是函数、数据和文档的集合,是对R基础功能的拓展。只有学会如何使用R包,才能真正掌握R语言的精华。使用R语言的过程可以用一句话来描述:用别人的包讲自己的故事。

在安装R的过程中,会自动安装一系列默认包,它们提供了基础的默认函数和数据集。这些包的功能远远无法满足我们的需求,这时我们就需要手动安装一些包。这些包安装好以后,需要通过library()命令载入到会话中才能使用。当你想知道哪些包已加载并可使用,可以使用(.packages())命令。

1.4.1 熟练掌握R语言的10+1包

本书对数据分析常用的包进行了汇总,整理出了以下比较重要的10+1个包供读者参考:

数据读写:readr和readxl包

  1. readr包:把不同格式的数据读入R中,比传统方法快十倍的速度,字符型变量还不会被转化为因子型变量(read.csv等读入时需要加上),如果数据载入时间超过5秒,函数还会显示进度条,支持读入分隔符文件(如用read_csv()读入CSV格式文件),逐行读入TXT文本文件(用read_lines()函数读取),固定宽度文件(用read_table()读入表格类文件),网络日志文件(read_log()函数读入日志文件)。

  2. readxl包:如果读入EXCEL文件,首选用这个包,近40万条数据,几秒就读入内存。

上面两个包都是用C++写成,一次读入的数据越多,优势越明显。

数据预处理与重塑:reshape2、dplyr和tidyr、data.table

  1. reshape2,这个包主要功能是对数据格式重塑,两个常用函数melt()和cast()。

  2. dplyr,hadley开发的做数据处理的包,功能强大而又实用,主要解决基于数据集的各类dataframe输出,可以说是R语言数据处理必学神器。

  3. tidyr,同上,是对reshape2的升级。

  4. data.table,比dplyr包更高效处理数据的常用包,尤其是在数据集很大的情况下实用,处理速度甚至超过python里的pandas,建议经常处理几百万条以上数据的人员认真掌握(有人试验过,1000多万条,近2G的数据,1分钟就读入内存),建议阅读http://blog.csdn.net/sinat_26917383/article/details/52911734https://zhuanlan.zhihu.com/p/22317779

日期处理:lubridate包

  1. lubridate,这个包主要处理日期和时间类的数据。

可视化展现:DT、ggplot2、recharts包

  1. DT包,当需要以表格形式展现一部分数据集或数据分析结果时,DT包是较好的呈现方式。

  2. ggplot2包,这个包基本就是R语言可视化的代言词,功能强大,学习也需要些时间,建议与ggthemes包一起使用

  3. recharts包,这个包是对百度echarts2的封装,即便不会Javascript,也能在R语言中完成各种商业级图表的绘制。详细使用见:http://madlogos.github.io/recharts/index_cn.html#-en

学术研究表格展现:+1包,stargazer包

  1. stargazer包是经管类学术研究常用的一个分析结果展现表格,由Havard大学学者开发,方便回归分析、面板数据分析等十多种数据分析结果的出版级表格呈现,可以html、Latex或txt形式输出。对于写定量型学术论文的人士大有帮助。

1.4.2 安装R包

R语言包的来源一般有两种:分布在世界各地的CRAN镜像以及github网站。

安装CRAN上的包可以使用install.packages(‘NAME’)命令,NAME是你所需要安装的包的名称。例如:

install.packages('ggplot2')

对于托管在github网站上的包,则先要通过install.packages(‘devtools’)命令安装devtools包,之后通过devtools自带的函数install_github()进行包的安装。例如:

devtools::install_github('yihui/knitr')

当然也可以手动将包下载到本地进行安装,这种方式在本书中就不做介绍,请读者自行探索。

输入命令library(ggplot2),对ggplot2这个包进行加载,就可以使用ggplot2这个包开始R语言的探索学习了。

1.4.3 R包的卸载

可以使用detach(‘package:ggplot2’)将ggplot2包卸除,注意不是将R包从本地删除,而是把已经加载的包卸除,使它不再加载。

如果你想彻底将R包从本地删除,可以使用如下命令:

remove. packages('NAME', lib = file.path("path", "to", "library"))