浅析Python,R与SAS的区别,以及优势

从构架的角度来描述

  1. SAS构架分为C-S模式(客服-服务模式),并且SAS依照适用的情景模式,将SAS划分为各种模块,通过SAS各种模块的组合适用可以满足不同环境下的使用。SAS各模块间耦合度高,但灵活性较于R,以及Python有欠缺,但SAS是一个成熟度高的商业化系统,Python和R 是由开源社区发展出的一套免费的程序语言,相比SAS而言,稳定性较差。
SAS平台构架
  1. Python以及R都为解释型语言,并且没有像SAS一样构建了一套完整的数据分析体系,通过构建R脚本,以及在目标机器上配置对应的脚本解释器,对程序员书写的R代码进行解释。虽然Python和R 并没有像SAS一样有着复杂的构架,但是这也使得R与Python 有着很大的灵活性,可以根据实际需求,自行定制构建系统,各个环节的构建可以完全依照目标用户的需求进行设计。而且Python与R都是免费,并且开放源代码,使用成本低,可以深入源码了解其实现方式。
R与Python环境

从适用范围的角度来描述

  1. Python是一门多功能语言,具备了编程语言的基础特性
    在数据类型上python使用了整形,浮点型,布尔型,字符串,以及由这些基本类型元素组合成的更复杂的数据结构,列表,元组,以及字典。
    python在编程方法上,支持面对对象编程,以及面向过程编程两种编程方法。
    python基础包包括IO读写,进程线程的管理,并且在扩展包中包含了各种不同用途的第三方包,例如图形包(TK,Qt),网络编程包(Socket),web包(Request),系统管理包(OS),数据统计分析包(numpy,Scipy,Matplotlib,Scikit Learn)
    python常被用作系统管理,搭建Web服务,网络爬虫,统计分析等多个方面,是一门用途广泛的胶水语言。

  2. R的数据类型包括原子向量和泛型向量,原子向量是单个数据类型的数组,泛型向量是原子向量的集合,R的编程方法上支持面对过程编程,以及后引入的面对对象编程方法(虽然R的精简度很高,可以通过很少的R代码完成大量的任务,但是随着需求发展,为了更方便的构建复杂R程序,引入了面向对象的编程方法)
    R的包,包含了大量的统计包,而在其他的方面(受限其语言特性)并没有向python一样在多方面被使用。所以R,主要被使用在统计方向上。

  3. SAS的语言设计目标是对SAS软件各模块的整合利用,语法相比与其他编程语言,较为怪异,不具有很强的普适性。

从编程语法的角度来描述

python 的语法简洁,并且使用动态类型,这样带来很多优势,由于是动态类型,类型会在解释时进行确定,所以在python 中可以轻易做这样的事情,相较于Java,在python中做像下述伪代码中描述的像类传递,函数传递,实现起来容易的多,并且在传递过程中相较于java,在程序实现这个层面上,更容易理解其原理。

class Test_obj(object)
    pass
def func01(a,b)
    pass
a = Test_obj()
func01(1,a)
#在python 中由于是动态类型,所以像一个函数传递一个类,或者函数时,不需要考虑类型定义,以及在java中对类的向上转型的问题。

python 将每个基础数据类型封装成类,并且在类的内部封装了大量的对该种类型的操作,极大的方便了编程者的使用,并且减少了代码量,降低了开发难度。

R 语言在编程语法的角度来讲,简化了很多编程语法,大量的包函数可以让不精通编程的人通过书写少量的代码完成复杂的统计分析过程,面向一些没有编程基础的统计人员,界面更加的友好。
下面以代码+注释的形式,浅析R 与python的一些区别,也希望通过这几个小细节来展示出R与python在成语语言设计时的一些不同理念

#python 中包的导入
from package_name import class as rename
#R 中的包导入
library("package_name") 
#在python导入包后引入类,python考虑到不同包中类的名字可能出现重复,所以引入了as语句,可以给重复的类设置别名,在构建大型程序由于要导入不同的包很容易出现重名情况,python这样的处理机制,为构建大型程序提供了方便,并且代码书写也更加整洁。
#而R中包主要面向与统计计算,包的数量相于python较少,遇到重名的情况也较少,在R 中遇到重名时,解决方法是将library("package_name")在不同的地方使用,每次使用会更新当前包的搜索路径,在路径中靠前的包名,会覆盖后面包中的重名函数,相较于python的设计个人感觉不够优雅,导入包函数会存在于程序的各个位置,当写大量代码时看起来会较为混乱,在书写代码时也会不得不引入搜索路径这一概念。
#R绘图,并保存为pdf格式
age = c(1,3,5,2,11,9,3,9,12,3)
weight = c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
pdf("mygraphs.pdf")
plot(age,weight)
#Python的绘图代码,并保存为pdf格式
age=[1,3,5,2,11,9,3,9,12,3]
weight=[4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1]
plot(age,weight,output=pdf)
对创建同一格式图表的两种形式,R的代码表现出对于输出更依赖于对解释器环境参数的一些设置,而python的代码更符合程序设计,从代码的角度上抛开了对解释器的依赖。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容