R语言缺点


R的优点:免费,开源,体积小。
缺点:对大文本处理差,另外一个也在于开源,package如果出错,烦死你。
当你跑比较大的simulation,对效率有要求的时候,有时还是不得不用C,这可能是10小时和10分钟的差别,毫不夸张。
SAS流行于公司,R流行于研究机构和大学
数据分析不是单纯的靠软件来做的,需要很好的数学基础。

统计学工具各有千秋。
https://englianhu.wordpress.com/statistics/
学了R,可以免去学spss,matalab,ucinet等等众多的软件,可以减少不少的学习时间,前景应该不错
如果lz不准备搞数据数据挖掘相关的东西,最好还是学学python一类更通用的语言。如果搞数据挖掘的话,还可以学学hadoop...这种有专业背景的语言不会随便就消失的,前景不差~
r的数值计算没有像matlab高精度,比如算出应该是3的,可能r里面输出2.998。


除了统计函数包外,对于常规运算,R基本上乏善可陈,语法晦涩,性能奇差;所以现在R大有被python取代的趋势。
对于结构化数据计算,R的集合式语法和data frame对象已经被python的pandas包复制了,但是这两者做的都还不够好。这方面更有优势的开发语言是esproc,提供了远比data frame更强大的数据对象,同样有集合式语法但更自然易懂,遍历外存文件数据的的性能超过R的十倍以上。

下载了这本书的试读的16页,首先颜色排版看着是很舒服的,列子讲解也比较详细,并配有相应图片。因为是初学者,所以很是希望看到书籍中具体事例,比如书中的灯泡的平均寿命那个,可是不知道能从事例弄出来的指数分布曲线图分析出些什么(没有统计分析的底子,看这些比较难,主要不知道最后怎么去应用)。
R语言对我来说难点就是没有统计分析学背景,并且很多数学公式完全不知道怎么回事。对算法基本上算小白。不过时间充足的情况下这些都是可以攻克的。

1. 大家觉得R语言难学吗?困扰你的主要是什么?
R语言非常易于入门,它的函数的使用很简单,开发IDE的使用也很简单。
我们最爱使用的是RStudio开发工具。
但是,精通R语言也有一些难点或者说是困扰,主要表现在:
1)R语言的包/库极其庞大,有数千个,很多时候你并不知道该使用什么包/库来解决问题。
2)正如第一点所说,库太多,并不是所有的包/库都是高质量的,使用某些库分析数据得出的结果有可能是相互矛盾的。
3)R语言跟概率论和数理统计结合紧密,数学功底不深的话,难以精通R语言。

2. R可以实现数据分析中的哪些工作?
R语言可以实现数据分析中的绝大多数工作。
可以进行数学运算;
可以进行 统计和分析;
可以做快速傅里叶变换;
可以进行平滑和滤波;
可以做基线和峰值分析。
- 数据传递及服务(RHive、Rserve、rJava)
- 清洗及预处理(sqldf、stringr、XML)
- 抽样、分类、关联觃则、特征选择、稀疏矩阵运算、矩阵分解、社交网络
- 高性能计算(rhdfs、rmr2、Rcpp)
等等

3. 你曾经使用或编写过R软件包吗?
曾经在某个项目中频繁使用。后来用Python的数据分析包更多一些。
一句话,不限于R语言,快速解决问题是根本。

4. 说说您读完试读样章后的启发
样章提供了第四章“随机数与抽样模拟”的内容,从这章的内容来看,书籍描述比较浅显易懂,并没有长篇大论的理论分析,而是以例子为主,伴随讲述了很多函数。不错的书,渴望一读。
从统计学本身来说,R与其他的软件都是可以大大地增加生产力的辅助工具。并且R与商用软件相比,着实有些寒碜。从样章来看,不太喜欢这样罗列各种功能的结构,如果能够以一个案例的形式讲解如何应用的具体场景,效果会更好些。


1如何掌握r
答:要想快速掌握R的最好方法是选择一本叫好的参考书,跟着参考书学一遍即基本上学会R了,当然如果要想熟练使用,还是需要自己在实际的数据分析中多用多思考。
2实际数据分析中r使用有什么可以分享的经验
答:实际分析中R的使用要具体问题具体分析。一般来讲:(1)在读入数据之前,先看一下每个变量的类型,是连续的还是离散的?往往离散的变量需要转换成虚拟变量;(2)写code过程中,勤加注释,因为可能过几个几天都不认识自己写的code了;(3)写程序时尽量少用循环,能用矩阵运算尽量用矩阵运算。

3内存溢出如何办
答:内存问题始终是限制R的一个问题之一。一般来讲,加大内存是最好的方法,所以碰到海量数据时,建议一般用HPC(高性能计算机)去运算;另一方面看看有无可能优化自己的算法,尤其是不要有太多的循环,循环是R的薄弱环节。此外,还可以清理一些不用了的对象来释放内存,如果真的需要大计算的话,可以看一些处理大内存对象与并行计算的软件包等,比如bigmemory等。

4数据分析算法如何根据问题选择
答:数据分析算法的选择是非常复杂的一个问题,这个不仅仅是R的问题了,而是统计的问题,每种统计方法、算法都有其适用的条件,不是所有场合都套上去就可以了,所以学习R来说,其实最好是结合统计、数据分析的方法来学是最好的。

5异常数值和缺失数值如何处理
《R数据分析-方法与案例详解》的第5章有讲解,请参考。

6特征变量如何构造,衍生变量如何构造
《R数据分析-方法与案例详解》的第5章有讲解,请参考。


  R的短板在于安全性与内存管理
  说了这么多优势,R语言当然也存在着一定不足。“内存管理、速度与效率可能是R语言面临的几大最为严峻的挑战,”Adams指出。“在这方面,人们仍然需要努力推动——而且也确实正在推动——其进展与完善。此外,从其它语言转投R怀抱的开发人员也会发现后者在某些设定上确实有些古怪。”
  R语言的基本原理来自上世纪六十年代出现的各类编程语言,Peng解释道。“从这个意义上讲,R语言在设计思路上属于一项古老的技术成果。”这种语言的设计局限有时候会令大规模数据集处理工作遇到难题,他强调称。因为数据必须被保存在物理内存当中——但随着计算机内存容量的不断提升,这个问题已经在很大程度上得到了解决,Peng指出。
  安全等相关功能并没有被内置在R语言当中,Peng指出。此外,R语言无法被嵌入到网络浏览器当中,Peng表示。“我们不能利用它开发Web类或者互联网类应用程序。”再有,我们基本上没办法利用R语言当作后端服务器执行计算任务,因为它在网络层面缺乏安全性保障,他表示。不过Amazon Web Services云平台上的虚拟容器等技术方案的出现已经在很大程度上解决了此类安全隐患,Peng补充道。
  长久以来,R语言当中始终缺少充足的交互元素,他表示。但以JavaScript为代表的各类编程语言介入其中并填补了这项空白,Peng指出。虽然我们仍然需要利用R语言处理分析任务,但最终结果的具体显示方式则可以由JavaScript等其它语言来完成,他总结道。
  R语言并不单纯面向高端程序员
  不过Adams与Peng都会R视为一种易于接受的语言。“我本人并没有计算机科学教育背景,而且从来没想过要当一名程序员。将编程基础知识纳入技能储备当然很不错,但这并不是上手R语言的必要前提,”Adams指出。
  “我甚至并不认为R语言只适用于程序员。它非常适合那些面向数据并试图解决相关问题的用户——无论他们的实际编程能力如何,”他强调称。

猜你喜欢

转载自www.cnblogs.com/timxgb/p/9844083.html