求助,R语言在python中调用问题

Python038

求助,R语言在python中调用问题,第1张

你使用的方法没有问题。r.mydose()调用后返回的东西不是报错,是因为mydose这个function返回值就是NULL,所以rpy就相应的返回了rpy2.rinterface.NULL,没有问题。以上是我的测试nofunc是一个什么也不做的functionhello是输出Hello world的function

Python与R的区别和联系

1、区别

Python与R的区别是显而易见的,因为R是针对统计的,python是给程序员设计的。2012年R是学术界的主流,但是现在Python正在慢慢取代R在学术界的地位。

Python与R相比速度要快。Python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。所以有人说:Python=R+SQL/Hive,并不是没有道理的。

Python的一个最明显的优势在于其胶水语言的特性,很多书里也都会提到这一点,一些底层用C写的算法封装在Python包里后性能非常高效(Python的数据挖掘包Orange canve 中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。但是,凡事都不绝对,如果R矢量化编程做得好的话(有点小难度),会使R的速度和程序的长度都有显著性提升。

R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面,无论是经典还是前沿的方法都有相应的包直接使用。相比之下,Python之前在这方面贫乏不少。但是,现在Python有了pandas。pandas提供了一组标准的时间序列处理工具和数据算法。因此,可以高效处理非常大的时间序列,轻松地进行切片/切块、聚合、对定期/不定期的时间序列进行重采样等。近年来,由于Python有不断改良的库(主要是pandas),使其成为数据处理任务的一大替代方案。

2、联系

通过R和Python只共享文件,Python把源数据处理干净,生成格式化的文件放在预定的目录下,做个定时器让R去读文件,最终输出统计结果和图表。

让Python直接调用R的函数,R是开源项目,有rpy2之类的模块,可以实现使用python读取R的对象、调用R的方法以及Python与R数据结构转换等。