作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书,《R语言数据高效处理指南》(黄天元)【简介_书评_在线阅读】 - 当当图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
之前的文章(HopeR:R语言高效数据框操作:tidyfst)中介绍了新的数据操作包tidyfst,目前已经升级到0.7.7版本。这个版本的促成,是我尝试断奶tidyverse的结果。其实解构一下tidyverse,我们会发现它有很多好的东西,但是也有很多冗余。比如说purrr中的map函数,基本跟lapply没有太多的差别,至于map的衍生家族,其实仅仅是将lapply的返回结果进行一个安全的强制类型转换而已。SO就有人吐槽这也要做个包...确实很多tidyverse的包应该合成一个包,特别是dplyr和tidyr,其实整个scope还是很像的。
目前,我把现在都工作都用tidyfst来实现,就在原来的函数里面加“_dt”即可,然后做了一些调试和增补。重要的是,新版本的分组操作已经优化过,因此速度已经加快。这次的版本更新加了很多函数,部分特性在其他的基础上都进行了优化,还加了一个关键特性是直接在tidyfst中使用data.table(详见Example 6: Dt)。后,上新链接:
https://hope-data-science.github.io/tidyfst/index.html以前我就有感觉,data.table的速度就是,前面等一下,你以为要等好久,结果后来数据突然就蹦出来了,非常神奇。现在越来越能够理解,其实data.table可能是把R的命令后转为底层的C,转化的过程可能会需要一些时间。而tidyfst为了做API,某一些比较复杂的操作也会可能存着这种“先苦后甜”的延迟。但是这对于大数据的处理来说,几乎是微不足道的(无论如何你都要等更长的时间)。目前这个API已经日趋完善,下一次更新,应该是与data.table同步了,等data.table的1.12.9版本上线,我们再融合其新的特性进行调整。