学了Python后可以不学R语言吗?Python和R该如何取舍?
31 个回答
去年的项目同时用到了R和Python,这个项目主要分析气功对于人体的影响,一共有两部分的数据,一部分是非结构性数据,比如这样的日志文件,类似于写日记去记录自己的感受。
另一部分是结构化数据,类似于一个班级的名单,有名字、人员ID(学号)、性别、年龄等等,可以看到这些数据是整理的非常有条理的,并且这些内容都可以进行分类并用数字或者字母来代表。举个例子,男:1,女:2。
那么我们主要就是利用这些数据来分析练习气功到底对人体有什么作用,这个作用靠谱吗?
数据分析的大部分工作是由我来完成的,我是这样分配的。
对于非结构化数据,也就是那些日志类数据,我是用的python,因为我主要拿它来做情感分析,这部分属于机器学习的NLP部分,而python对于机器学习更为擅长。
对于结构化数据,我选择了R,因为R在统计方面确实更厉害,当然了,最主要的原因是项目负责人用的是R,否则我还得用python重构,所以我也不得不花了点时间学习了下R。
用过R之后,发现它在统计方面和作图确实是比较厉害。统计就不用说了,这就是它最强大的地方,其次就是作图,我主要用的是ggplot2这个库。
至于学了python需不需要R,我觉得这个真的看你的需求,如果你的项目没有必须要用R,那么python也是足够的,因为R有的包,一段时间之后Python也会有。而python是个万金油的语言,几乎所有的方面它都有不错的库,以下方面仅仅是一部分。
另外还有几个方面可以参考:
目标人群:
Python:
深入研究数据分析或应用统计技术的 程序员 以及转向数据科学的开发人员和程序员。Python是一种 可用于生产 的语言,这意味着它能够成为一种与工作流的每个部分集成的单一工具!
R:
主要用于 学术研究 ,对于 探索性数据 分析非常有用。近年来,企业使用范围迅速扩大。没有计算机编程技能的统计学家、工程师和科学家。它在学术界、金融界制药、媒体和营销很受欢迎。
优点:
Python:
- 它通用编程语言不仅仅是数据分析,其他方面也很强。
- 可以直接用的代码很多
- 非常适合数学计算学习算法
- 具有高度易部署性和再现性。
R:
- 可以制作很漂亮的图形和易于可视化
- 具有许多数据分析功能
- 非常适合统计分析
- 围绕命令行构建,但大多数R用户在RStudio运营R代码,可以理解为跟vs code一样的编辑器
缺点:
Python:
统计方面的库不如R多
作图方面弱于R
R:
- 发明者是统计学家,学起来可能不那么的舒服
- 社区不如python发达,包有但是不一定好找
- R的运行速度很依赖于代码写得好不好
- 机器学习,特别是深度学习、NLP这类不如Python流行
总结
至于你最后面学不学R语言,我觉得看完上述这个应该会有大致的了解。
那么如果你还没学python或者R任意一个,我建议你先学python,具体的学习方法可以参考这个回答:
对于大多数人来说,我其实是推荐把数据分析当做一个方向来学的,首先python的优势就在数据处理分析与人工智能。
人工智能的从业门槛很高,自学基本上属于纯玩,性价比不高。
数据分析处理,我觉得是未来各行各业都可能碰到的问题,虽然现在有很多自动化数据处理工具,但是毕竟通用的场景并不多,而那些熟悉某个特定行业领域+数据处理能力的复合型人才就相对可能更吃香。
这里有一门知乎知学堂出品的数据处理精品课程,对于在本职工作之外想要学习一门实用技能的同学,建议免费体验一下,记住,那这个找工作很难,属于锦上添花的技能。
当然了如果已经学了python,那么需要用到R的话,硬着头皮也得学。那下面这个入学回答说不定可以帮到你。
依题主的情况,那无疑首选Python!当然R也可以学,用来做辅助就好了。
R:开源统计之王,学者、统计学家的最爱,广泛用于校园教学和学术科研。一句话,R就是搞统计的。
Python:通用编程语言,计算机圈最受欢迎的语言之一;相比C/C++/JAVA更容易入门,功能更全面,比如 爬虫 ,默认用的就是Pyhton。
很多年前,也就是 机器学习 没有火爆之前,Python搞编程,R搞统计,两者“泾渭分明”。R的主要对手包括:
- Stata;
- SPSS;
- EViews;
- SAS;
- MATLAB;
- Excel;
- ...
不知道大家有没有听过这句话:机器学习=统计学习。正是因为机器学习,Python和R这位统计之王“杠”上了。
——随着 机器学习 及(之前) 大数据 、 数据挖掘 的兴起,计算机学家们逐渐用Python“复现”了R在统计领域的大部分功能,逐渐开发了一些强大的统计/数据分析包:
- NumPy,矩阵计算;
- SciPy,科学计算;
- pandas,数据框数据处理和简单画图,对标的是R的tidyverse;
- matplotlib/seaborn画图,对标的是R的ggplot2;
- statsmodels,对标的是R的回归等主流的统计模型(以及AER计量包)——但是这块Python还明显落后R,正如R落后于Stata;
- ...
虽然Python一直在统计领域“追赶”R,但是有些地方短期内是追不上的:
- 生物医学等领域的一些专用的模型,比如生信分析;
- 一些比较新、前沿的统计模型,统计学家就一般用R写,没办法;
- ...
不过呢,除了爬虫等十八般武艺样样都行之外,Python还在几个地方是碾压R的:
- 机器学习 (R是第二主流语言,Python占7R占3大概),Python的机器语言包、文档、资源远超过R;
- OO面向对象编程,Python天生面向对象,R是函数式编程;R一直向OO靠,但目前还不伦不类;写惯了Python再回去R,你会发现很是别扭;
- 和SQL/Spark等数据库的协同,这方面 R 很难玩得转;
- 业界的接受程度。生产部署方面,Python远比R应用得多。
所以即使是做数据分析、统计分析、机器学习,把Python当成主力工具也是理所应当的。加上R的辅助,完美~!
不过话说回来,对于不是计算机科班出身的同学,Python和R自学的曲线相对传统统计工具是比较陡峭的。
所以,大家参考这几本书,保证可以少走很多很多的弯路,少花很多RMB:
第一本,编程入门:
第二本,数据处理,pandas/NumPy/matplotlib/seaborn:
第三本,机器学习,sklearn:
看书之外,再到B站白嫖一些视频,或者啃点官方文档作为辅助,就万事大吉咯。
更多Python自学的书籍推荐,可以参考本人的高赞回答:
R的话,就2本。
第一本,编程基础:
第二本,数据整理、统计建模和机器学习,作者是RStudio的首席科学家:
更多R的自学方法和书籍推荐,可以参考本人以下的高赞回答:
王几行xing:有哪些快速自学R语言的资源/书籍值得推荐?(建议收藏)
更多Python/R/Stata 编程学习分享,可参考本人主页。
以上。