R 语言的好坏势是什么?

12个月前 (01-10 01:37)阅读2回复2最佳爬楼位置
zaibaike
zaibaike
  • 管理员
  • 注册排名1
  • 经验值514640
  • 级别管理员
  • 主题102928
  • 回复0
楼主

就一个R和SAS精通水平几乎不异,在两种情况下都做过比力大(moderately big, ~xx Gb)的数据阐发,与其他语言情况嵌合(SQL, Perl, etc...)利用过的小我(统计专业人员,非编程专业人员)的感触感染而言:

R的长处:

1. 免费... 开源... (那是最重要的一点好欠好,也是SAS流行于公司,R流行于研究机构和大学的最次要原因)

2. 是专门为统计和数据阐发开发的语言,各类功用和函数琳琅满目,此中成熟不变的一抓一把

3. 语言简单易学。虽与C语言之类的法式设想语言已不同很大(好比语言构造相对松懈,利用变量前不需明白正式定义变量类型等等),但仍保留了法式设想语言的根底逻辑与天然的语言气概。我如许说可能让人听得云里雾里,但是若是你对SAS或者SPSS有一点点领会,就会大白我的意思了...

4. 小... 安拆法式只要50Mb摆布,比起某些死贵且3个G的付费软件实的是超等迷你玲珑小巧... 因为体积笨重,运行起来系统承担也小。

5. 同各类OS的兼容性好。我两台本本一台Windows,一台Linux,都用得很随手。比拟之下,你有见过人在Mac上用SAS吗... 那人是要多么的想不开... =. =

6. 因为用的人越来越多,又是开源,有良多配套的“插件”为其锦上添花。好比xtable里有一个函数能够间接将R里的表格导出为TeX格局;另有RStudio的插件让你能够在统一个情况里写TeX跑R并可在你的TeX文件中插入你的R代码,多么的贤良淑德... (那个插件我没用过,不外我同窗一天到晚在用)

7. 有R GUI和RStudio两种气概供君选择,说实话我觉得那两种气概已经涵括了大大都人的利用偏好...

8. 已经提过了开源,还想再强调一下。各类包和函数的通明性极好,那使得对函数的调整和改进变得十分便当。只需要把源码调出来,本身略微修改一下就能够了。那种工作放在任何其他统计软件里都近乎奢望。

9. 若是你做Bayesian,用R你有OpenBUGS, WinBUGS, JAGS等各类成熟活泼的包裹,良多语言又简单又附带各类预设的plot,你只需挪用即可;还能够本身写MCMC。若是你用SAS/SPSS/Stata,你能够... @@? = =bbb

10. 标致又灵敏的图,各人也都已经讲过了。本来不是什么出格凸起的利益(有则好,没也没啥),不外如今数据可视化越来越热,也就一跃成为次要长处了。

说说缺点:

1. 对大文本(text data)处置极差... 或者说data management本就不是R的强项。SAS于R的更大优势之一可能就在于它兼顾了数据阐发和数据办理。在SAS里对数据停止各类复杂操做都相对容易,只需要简单的DATA STEP(需要时连系PROC SQL)即可完成;在R里可就实的是含辛茹苦... 固然也有响应的aggregate, merge之类的函数,但是大都不太好用。那也是为什么各人常常把数据(尤其是数据大时)在此外情况下整好/朋分好再喂给R。人家术业有专攻,数据办理实是有些难为它了。

2. 内存办理和平行处置(parallel processing/programming)都为人诟病。数据小时没有觉得,数据大了就各类报错... =. =

3. package的可靠性问题。我第一门完全利用R自然业的课是门统计课,传授已经六十多岁,见过各类统计软件的出生开展和埋没。她同我们说到R时第一句话就是Never use a package before you understand the manual and confirm the validity of the functions. 也就是包裹固然好,利用需隆重。次要原因仍是在于开源。不常用的package必然要搞清晰函数的用法和核实过输出,否则实的不保举利用。我小我也是倾向十分用函数尽量本身写,至少错了也容易debug...

4. 不能不提的package的版本问题。 就算你确认了包裹的可靠性并熟知了各个变量要怎么用,仍是可能掉入潜在的陷阱=. = 讲个实事:去年工做的时候一个项目是利用11年某项目标一个贝叶斯模子阐发新的数据。昔时写代码的人因为相信末日说两年前就已经告退环游世界去了,于是我只好单独研读他的代码。第一步,很天然的,就是反复昔时的阐发成果。那时发现昔时他用的一个package和如今的R已经不兼容,于是就下载了那个package的最新版本。成果有一个简单的credible interval怎么都反复不出来... 怎么怎么都反复不出来... 我都快绝望了。最初经各类推理验证,发现那个区别源自于新旧版本的函数内部在对数据排序之后对NaN的差别处置... 而那个小小的修改未在任何处所留下任何文字记录。所以怎么说呢... 良多时候仍是写本身的法式靠谱哇...

R 语言的好坏势是什么?

5. 当你跑比力大的simulation,对效率有要求的时候,有时仍是不能不用C,那可能是10小时和10分钟的不同,毫不夸大。

6. 想不出来乐 =w=

大致就是如许。

最初,因为不是学计算机身世,文中与编程语言和系统相关的措辞可能禁绝确或有误用,请法式员们多包容=)

0
回帖

R 语言的好坏势是什么? 相关回复(2)

梦幻
梦幻
沙发
R语言的优势在于其强大的统计分析和绘图功能,以及易于使用的编程接口。
4天前 (12-28 03:17)回复00
暗夜幽灵
暗夜幽灵
2楼
R语言具备良好的统计能力和社区支持,但对于编程初学者而言可能会稍显复杂。
4天前 (12-28 03:18)回复00
取消