作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书,《R语言数据高效处理指南》(黄天元)【简介_书评_在线阅读】 - 当当图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
与上一年一样,今年继续参加了华东地区的R语言大会,只是从与会者变成了演讲嘉宾,倍感荣幸。我在会上分享的内容是关于数据操纵(Data Manipulation)在R中的实现,重点比较了dplyr和data.table两者的差异,并就未来的发展做了一些简要的介绍,现在上传到Github上方便大家参考:R语言数据操纵之美。
同时回答会下观众的问题,与大家分享:
1、R语言能否用于文本挖掘(自然语言处理)?
必须可以,而且是非常可以。我自己的专栏中连载了一系列的R语言文本挖掘和自然语言处理的帖子,大家可以参考。R语言在文本挖掘上的生态是非常完善的,我不能算深耕但是也是重度爱好长期使用,我可以告诉大家它没有什么:涉及深度学习的一些算法,比如新的BERT,这个确实尚未发现有R的实现,还有node2vec。因为这些算法是计算机科学家先提出的,目前R领域以统计学家为主,确实需要更多的计算机科学家加入,把新的方法开放一套R的接口,不是总是低效地调用Python。
2、R语言的数据操作与Python比较怎么样?
没有比较就没有伤害,这里下个结论:Python的pandas在未来一直会处于追赶的状态。大家要知道,data.frame这种数据结构在R中本身就是内置的,data.table和dplyr只是为其加上更强大的内功(data.table)和外功(dplyr)。Python这种胶水语言不是为数据科学设计的,没有pandas就没有数据框的数据结构,它只是为计算机科学家转数据科学开了口子,把机器学习的门槛降低,这是好事,但是以Python作为数据科学核心是很难的,数据科学不是它应该主导的事情,它的重心应该放在“胶水”上面(比如如何把多语言开发的东西都拼接在一起)。
早年我还写过R与Python手牵手系列,比较两者对数据操作的处理。现在不比较了,pandas确实不行。会上比较了R和SQL的差别,压根没提Python,因为它在数据操纵上还上不了台面(欢迎打脸)。目前,pandas的语法结构及不上dplyr,性能及不上data.table,而R社区已经在考虑如何结合data.table的性能和dplyr的语言结构来做一套内外兼修的数据操作工具。所以专注数据科学的小伙伴(特别是非计算机出身的)可以果断放弃Python,但是机器学习(特别是深度学习)上面应该对其予以更大的重视。R这方面确实在学习Python,目前好的工具应该是caret(The caret Package)和mlr(Machine Learning in R),未来我们也许能够看到更好的R,更加美观而且性能更佳。
后,数据科学首推R,用Python打辅助,是非计算机出身的人佳的选择,没有之一。我自己就是学C的,如果当时学完C遇到的不是R,我想今天我应该是一个Python的狂热爱好者。但是我去了华师,遇到了R,爱了,不悔。我不会跟大家说全都要什么的,do whatever makes you happy and solve all the problems ahead~