生信修炼科研信息学数据-R语言-图表-决策-Linux-Python

大佬新作dtplyr:当优秀的语法遇上牛批的速度

2019-11-18  本文已影响0人  小洁忘了怎么分身

为啥子开发新包

这要从两个牛批的老包说起。

dplyr

先科普一下dplyr,是Rstudio首席科学家hadly大佬的包包套装tidyverse里最能打的一个包,将基础包$,[ ]这类乱码式的语法变得可读性更好,复杂的功能简单化,大大减少初学者的学习成本,是我的真爱
氮素,被吐槽的比较厉害的是处理大数据的速度(小的数据就憋说了,速度不重要)。

data.table

其实data.table里面我只用过fread这个函数读取数据,非常能打,又快又智能,也是我的真爱。但他的语法就不如dplyr优秀了,大佬专用系列~

有人整理了data.table和dplyr包的对比:




还有两张截图就不放了。

对于这两个包的优秀程度,从我以前写的这两篇笔记可见一斑:
写给零基础同学的R语言第四篇教程-神奇R包dplyr
超有诚意的R语言数据读取指南(长文慎入)

pia的一下双剑合璧了

大佬冲冠一怒写了个新包出来,把他俩双剑合璧了!登上CRAN的时间市11月12号,下图市他的介绍现场。



他明明是个实力派,但是颜值跟PPT都不允许啊。
放张大图,如果看到这里你已经看不懂了,就去文末看图舔屏吧。

dtplyr肿么用?????

吹爆,首发介绍的博客地址是https://www.tidyverse.org/blog/2019/11/dtplyr-1-0-0/
最基础的用法灰常简单:

加载

library(data.table)
library(dtplyr)
library(dplyr, warn.conflicts = FALSE)

懒蛋表格?

✨重点是将你的tibble数据结构改一下:

mtcars2 <- lazy_dt(mtcars)
class(mtcars2)
## [1] "dtplyr_step_first" "dtplyr_step"     

具体改成了啥类型不打紧,重要的是改这么一锤子,就能提速了!

假装还在用dplyr:

下面的语法还是dplyr的语法,但其实已经被翻译走啦,速度杠杠的:

mtcars2 %>% 
  filter(wt < 5) %>% 
  mutate(l100k = 235.21 / mpg) %>% # liters / 100 km
  group_by(cyl) %>% 
  summarise(l100k = mean(l100k))

博客里面,后面的代码是大佬为了表示提速了他很膨胀,就不用演示了,直接上结果:



差别不在一个数量级啊!!!!

就是这个人。


微信公众号生信星球同步更新我的文章,欢迎大家扫码关注!


我们有为生信初学者准备的学习小组,点击查看◀️
想要参加我的线上线下课程,也可加好友咨询🔼
如果需要提问,请先看生信星球答疑公告
上一篇下一篇

猜你喜欢

热点阅读