为”Tidyverse” 疯狂打call!

浏览: 3115

如果要问大家每次用R studio做分析数据的无语瞬间,大概每个朋友都会想起下面这些提示:

Error in function_list[[k]](value) : could not find function "ggplot"
Error in mutate_impl(.data, dots) : could not find function"make_date"
Error: could not findfunction "%>%"

然后猛然想起,又忘了导入这些个library了,然后赶紧加上:

library(ggplot2)
library(lubridate)
library(dplyr)

也许还远远不止,还需要导入这些:

library(tidyr)
library(stringr)
library(magrittr)

。。。

一串串的library,我常常在想,难道没有一个library可以把这些常用的包全部放在一起么?这样就不必分别读入,甚至常常忘记导入。果然,只有自己想不到,没有大神做不到。这个实现我愿望的神器就是:Tidyverse!怀着崇敬的心情去膜拜了官网的种种介绍,然后迅速给自己的Rstudio武装上了Tidyverse,瞬间感觉自己已经不是每次需要分开导入无数个包还常常忘记的菜鸟了,幸福。接下来满足的用户体验,让我忍不住为Tidyverse疯狂打call!这么棒的东西,当然要分享给大家!

为什么需要Tidyverse

对于大多部分数据分析任务,通常有一些固定的操作,操作对应的命令和library也是相对固定的,基本可以用下图概括。

image.png

首先,导入数据→整理数据,然后进入:转换数据→数据图像化→建立模型这三者的循环中,同时需要一些操作让我们的代码更简洁。

假如这些是你的日常操作,那么恭喜你。你再也不需要分别导入这些library了,有了一个一步到位的梦幻操作。

library(tidyverse)

 

神码是Tidyverse

再Tidyverse闪亮登场之后,让我们来认识一下这个全能boy。Tidyverse是一个集成的系统包,里面包含了众多用作数据处理分析的library,并且持续更新中。简而言之,有了Tidyverse,操作很美腻。

image.png

每次开始数据分析任务之前,只需要导入这样一个library,就可以高效的开始各种数据处理和图像化。惊不惊喜?意不意外!

image.png

magrittr package: Pipe

相信大家对tidyverse中的众多package都不陌生,我想重点推荐的是magrittr,它提供给我们管道(Pipe)操作的思想,数据就像管道中的水一样流进流出,十分优雅。

下面是一个我们经常会遇到的简单需求:

·        选取100符合正态分布的随机数

·        对每个数取绝对值

·        画出100个数的直方图

常规的操作如下:

> x <- rnorm(100)
> y <- abs(x)
> hist(y)

当我们引入pipe时,只需要每个操作之间用“%>%”连接,数据流就将执行结果传入下一个操作。代码如下,全程并没有多余的参数,总共只有一行代码,就完成我们的需求。

> rnorm(100) %>%
+   abs() %>%
+   hist()

Magrittr的出现让我们的代码更具有可读性,以及让我们的代码短短短!能用最简洁的语言完成复杂的操作,这不是每一个IT人士共同追求的目标么!

因此,在我看来,与其说Tidyverse是为了方便我们的操作而产生,不如说它是为了培养我们做数据科学的习惯而存在。在使用Tidyverse的过程中,我们的数据流始终保持一致,并且能够高效地进行数据转换和可视化等等操作。


参考链接:

推荐 3
本文由 张土豆 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册