入手 R 语言

入手 R 语言

这是《R 数据科学》系列课程的第一讲,将带领大家学习如何使用 R 语言进行数据处理和统计图表的制作。这一系列课程将结合 R for Data Science 和我们生活中的实际案例开展。

视频讲解

本次课程的主要目标是带领大家了解 R 语言界面和一些基础的概念。尽管如此,在学习本课程前,我强烈建议你先学习下我编写的这个教程:R 和 RStudio 的安装及 R Profile 的配置 & 初识 R 语言数据爬取。这个教程讲解了如何下载和安装 R,以及通过 Profile 的配置让你的 R 变得更易于使用。

为什么你应该使用 R 语言

一般回答这个问题就容易被人怼,所以我们说的缓和点。

  1. R 语言有个非常好用的 IDE —— RStudio;
  2. 跨平台。R 语言可以在各种系统上使用,无论是 Windows
    、OSX 或者 Linux,你甚至可以在你的服务器上搭建 RStudio Server,这样你就可以从任何终端登陆使用了,我体验过,非常棒!如果大家没有服务器,可以在 http://rstudio.cloud/ 上注册个账户体验下;
  3. 启动速度快。不同于动辄几十 G 的 MATLAB 和 SAS,R 语言更加轻便,在 1~2 秒内即可启动投入使用。
  4. 运行速度更快。这个我主要是指和 Stata 比较。GitHub 上有个仓库:benchmark-stata-r: Speed benchmark of Stata and R on common data manipulations,这个项目比较了在同一台电脑上运行 Stata 和 R 中类似的程序需要的时间,结果如下:

这里面作者使用的是 Stata 的 ftools、tools 和 R 的 data.table、fst (这些都是两个软件处理数据最快的方式)。上图的结果是在我的电脑上运行得到的结果(Stata 我使用的是 8 核的 StataMP 14.2),可以看到 R 比 Stata 快的有 19 个操作,Stata 比 R 快的仅有 10 个操作。R 完胜 Stata。
5. 更精美的绘图效果。熟练掌握 R 语言你就可以制作出颜色绚丽、构图精巧的各种统计图表(使用 R 绘制的图表展示,附件中的 pic 文件)。
6. 更活跃的社区。R 的社区相比 Stata 的更加活跃,第三方开发者更多,你可以从社区中发现更好有用的资源。

工作空间和工作目录

设定工作目录可以让我们更为高效的使用 R:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

R 包

R 语言的各种函数是按照包的方式组织的。R 自带了一系列的基础包,但是这些包可能并不能满足我们的需要,甚至可能会妨碍我们的工作效率,这个时候我们就需要第三方开发者开发的 R 包了,可以去哪里获取呢?CRAN 和 GitHub 是两个很好的途径:

  1. CRAN: https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/
  2. GitHub: https://github.com/

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

为了更快的从 CRAN 上安装 R 包,你可以使用国内的镜像源,这个可以在 RStudio 的 Tools -> Globals Options 里面的 Packages 界面进行选择和设置。

国内用户安装 GitHub 上的 R 包是个非常困难的事情,可以选择先将包下载下来再安装的方式,也可以先将包 fork 到 Gitee 上再从 Gitee 上安装,例如我昨天安装 bayestestR 的时候就采用了这一方法:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

如何使用一个新的 R 包呢?当然是看帮助文档了。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

实际工作中可以根据自己的需要载入合适的 R 包:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

R 语言中的数据结构

在进行 tidyverse 系列的 R 包学习之前,了解一些 R 的基本元素很有必要。

标量

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

向量

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

向量的一些运算:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

可以注意到直接对向量进行的元素实际上是对应元素上的运算。如果两个向量的长度不一样,比较短的向量中的元素会被循环使用。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

字符型向量:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

矩阵

矩阵要求矩阵内部的每个元素拥有相同的模式(例如都是数值型的):

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

数组

数组的特点是可以容纳高维数据,例如我们之前的 使用 R 语言处理 netCDF 格式的数据(二) 教程中从 netCDF 里面提取的数据就是个多维数组。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

数据框

这就是 R 语言最大的特色了(Python 里面的 pandas 是抄袭 R 的)。自此我们也将进入 tidyverse 的世界。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

使用数据框绘图:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

数据框这么好用,那我们如何把我们的数据转成数据框呢?

  • readr
  • haven
  • readxl / writexl

例如读取 csv 格式的:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

读取 dta 数据:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

读取 xlsx 数据:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

其他的就不再一一举例了。

案例时间

我想,如果我一个个跟大家罗列数据框的各种操作无疑是非常枯燥的,我们不如通过一个案例来感受一下使用 tidyverse 系列的工具处理数据框是多么的方便。本节我将通过展示全球新冠疫情数据的处理来演示数据框的常用操作。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

作业

仿照全球新冠疫情数据的处理流程处理中国新冠疫情的数据:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

总结

本讲并未立即开始讲解 R 语言中的数据框的使用,而是先介绍了 R 和 RStudio 以及在学习数据框处理之前需要了解的一些基础 R 函数和运算方法。最后通过一个案例展示了 R 语言处理数据的常用操作。

知识星球附件链接:https://t.zsxq.com/YJaQbqF

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×