R语言与Python对比

R语言作为统计界第一语言(软件),很多时候与我们号称分析界第一语言的Python老是被人拿起来对比,所以今天专门做了一个表格,简介一下R语言与Python语言的对比情况。

首先还是我Python神图压镇:



首先介绍一下R语言吧:
有个小段子,说为什么要叫R语言呢?就是因为两位创始人的名字,都是以"R"开头的,所以,干脆一拍即合,就叫R语言吧……


R语言有很多的特点……当然,看这张图,是不是觉得很眼熟啊,没错,如果看过以前那篇“Python大法好”的文章的同学,发现,R语言怎么和Python的特性这么相似捏?




其实R也有很多自己特性,下面是它最显著的几个特性:
1、就是命令模式。Python虽然也支持命令模式,但是相对来说,更偏向于流程控制语句,也就是可以写一堆语句,然后执行。R本身基本上不需要用到流程控制(当然,它也支持流程控制)。

2、就是交互性。这样是命令模式的一个特点,敲回车,出结果。但是又不像SPSS那种用鼠标扎针的交互方式(在键盘上运指如飞逼格瞬间提升很多……好莱坞大片里面,高手黑客都是不用鼠标的,当然,这样很合理,SSH或者Telent到远程服务器上,怎么鼠标?)

3、也是R语言最大的特点,统计学特性……好吧R语言与其他所有计算机语言最大的本质区别,就是它是一门统计学家发明的语言(其他语言,基本上都是码农发明的,当然,也有数学家发明的),那么就有很多神奇特点。
    比如:赋值的时候,不用等号(=),用的是指向(<-),带来的问题就是要写 a < -5
    这种语句,就需要 a < (-5)  这样写。
    
    比如对象下面的属性,不用点(.),而是用刀乐($)。当然,点也能用,但是又带来各种问题,比如R语言的变量命名法则不用遵循匈牙利法则……可以用中文啊有木有:
    
    最反人类(反(程序)猿类)的设计,就是它的数组下标从1开始啊有木有!!所有的程序语言都是从0开始的有木有啊!!
    
    最后就是内存问题:R语言被要求把所有数据都加载到内存里面去进行运行……我卖噶!!现在动辄GB没事就TB就数据,作死要不要做得这么彻底?(当然,现在Spark也支持R了……这是一个好消息,大家都是内存计算,难兄难弟啊)


最后贴出我Python大法与R大法的对比图:



详细指标项如下:

Python程序猿经常说的一句话:别看我们运行慢,但是我们写得快啊……但是这个对比R就没优势了,R的代码量比Python更少……当然,是比R能够完成的任务的情况下。


实际上这种对比并没有太大的意义,比较硬要说R是一种语言,还不如说它更像是一个分析工具,是一个软件……而Python是一个支持大型软件工程项目的开发语言(不信,你用R写个web网站我看看……Python就可以。)




  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
实现语言核对的方法有很多种,以下是一种基于Python的实现步骤: 1. 准备语言表格和测试主机的语言数据。EL表格可以是一个Excel文件,包含多个语言的翻译对应关系;行车记录仪的语言数据可以是一个文本文件或数据库中的数据。 2. 使用Python的Excel操作库(如openpyxl)读取EL表格,将其中的语言数据存储到一个Python字典中,以便后续比对使用。 3. 使用Python的文件操作库(如os)读取行车记录仪的语言数据文件,将其中的语言数据存储到另一个Python字典中,以便后续比对使用。 4. 对比两个字典中的语言数据,检查它们是否一致。可以使用Python的逐个比对方法或者Python的集合操作(如set)等方法实现。 5. 根据比对结果输出核对报告。可以使用Python的输出库(如print)将比对结果输出到控制台或者写入到文件中。 下面是一个简单的示例代码,演示如何使用Python读取Excel文件和文本文件,以及比对两个字典中的数据: ```python import openpyxl import os # 读取EL表格 el_data = {} wb = openpyxl.load_workbook('EL.xlsx') ws = wb['Sheet1'] for row in ws.iter_rows(min_row=2, values_only=True): el_data[row[0]] = row[1] # 读取行车记录仪的语言数据 log_data = {} with open('log.txt', 'r') as f: for line in f: key, value = line.strip().split(':') log_data[key] = value # 比对两个字典中的语言数据 mismatch_count = 0 for key in log_data: if key in el_data and log_data[key] != el_data[key]: print(f"Mismatch: {key} - {log_data[key]} != {el_data[key]}") mismatch_count += 1 # 输出核对报告 if mismatch_count == 0: print("Language data match.") else: print(f"Found {mismatch_count} mismatches.") ``` 以上代码中,EL表格文件名为“EL.xlsx”,其中第一列是语言代码,第二列是对应的翻译文本;行车记录仪的语言数据文件名为“log.txt”,其中每行是一个语言代码和对应的翻译文本,用冒号分隔。比对结果输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾神说D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值