当前位置:首页 » 编程语言 » r调用python

r调用python

发布时间: 2022-09-06 19:49:54

1. python 新手问题。r 是干什么用的啊 后面如何跟变量使用

r表示后面的字符串是原生字符串即字符串中不含有转义字符\你也可以理解为所有的\没有转义作用就表示字符\。print(r"\n")输出为\n而print("\n")输出为换行。

2. python怎样调用R语言的自定义函数呢

你使用的方法没有问题。


r.mydose()调用后返回的东西不是报错,是因为mydose这个function返回值就是NULL,所以rpy就相应的返回了rpy2.rinterface.NULL,没有问题。


以上是我的测试

nofunc是一个什么也不做的function

hello是输出Hello world的function

3. 怎么用rstudio写python程序

PTVS(Python Tools for Visual Studio)是一个VS下的Python开发插件; 下载安装就可以直接使用了!

4. R和 Python 用于统计学分析,哪个更好

总的概括:R主要在学术界流行,python(numpy scipy)在工程方便比较实用。

R是S(Splus)的开源版本,或者下一代。发源地在新西兰奥克兰。这个软件的统计背景很浓烈。我这里浓烈的意思是,如果你不熟习统计知识(历史)的话,R的帮助文档看起来是很累的。由统计背景的人开发。R的维护组叫CRAN-R。在生物信息方便,有个叫bioconctor的组织,里面有很多生物信息方面可以用的软件包,他们有一套自己维护package系统。

Python是个综合语言(这里特指指CPython解释器),numpy scipy是数值计算的扩展包,pandas是主要用来做数据处理(numpy依赖),sympy做符号计算(类似mathematica?)此外还有一些不太成熟的包如sciki learn,statistical models。成熟度不如R。但是已经到了可用的水平了。是读计算机的人写的统计包。ipython 更新到1.0以后,功能基本完善,其notebook非常强大(感觉就像mathematica)而且还是基于web,在合作分享方面非常好用。

性能:
大家都说R慢,特别是CS的人。其实这里主要是两点:一个R里面数组的调用都是用复制的,二是Rscript慢。三是处理大数据慢。如果R用的好的话,R是不太慢的。具体来说就是Rscript用的少,多用命令,跑点小数据。这样的话,实际在跑的都是背后的fortran和C库。他们都有快二三十年历史了。可谓异常可靠,优化得不能再优化了(指单线程,如果去看源代码挥发先许多莫名的常数,永用了以后精度高速度快!)。比如一个自己编写一个R脚本,loop套loop的那种,那真是想死的心都会有。外加一点,R处理文本文件很慢!

Python归根揭底还是个有解释器的脚本语言,而且有致命伤——GIL,但python最难能可贵的就是它很容易变得更快。比如pypy,cython,或者直接ctypes挂C库。纯python写个原型,然后就开是不断的profiling和加速吧。很轻易可以达到和C一个数量级的速度,但是写程序、调试的时间少了很多。

并行计算:
R v15 之后有了自带的parallel包,用挺轻松的。不过其实就是不停的fork,或者mpi,内存消耗挺厉害的。parSapply,parApply什么的,真是很好用。

Python虽然有GIL——并行计算的死敌,但是有multiprocessing(fork依赖) ,是可以共享数据的什么的,估计内存消耗方面比R好点,数据零散的话overhead很多。到了MPI的话,mpi4py还是挺好用的。用cython的话结合openmp可以打破GIL,但是过程中不能调用python的对象。

学习曲线:假设什么编程都不会的同学。
R一开始还是很容易上手的,查到基本的命令,包,直接print一下就有结果了。但是如果要自己写算法、优化性能的时候,学习难度陡增。

Python么,挺好学的,绝大多数的帮助文档都比R好了许多。有些包用起来没R方便。总的来说深入吼R陡。

扩展资源:
基本上新的统计方法都会有R的package,安装实用都不麻烦。但是基本上都是搞统计的人写的计算机包。所以效能上可能有问好。比较出名的有两个包的管理网站,cran-r 和bioconctor。 所以搞生化的估计R用起来很方便。

python的统计计算包们比R少,多很年轻,还在不断的开发中。优于是计算机人写的统计包,用起来的时候要多涨个心眼。

画图:
R自带的那些工具就挺好用了,然后还有ggplot这种非常优美的得力工具。

python 有matplotlib,画出来效果感觉比R自带的好一些些,而且界面基于QT,跨平台支持。可能是R用得多了,pyplot用起来还是不太顺手,觉得其各个组建的统一性不高。

IDE:
Rstudio非常不错,提供类matlab环境。(用过vim-r-plugin,用过emacs + ess现在用vim。)

windows 下有python(x,y) 还有许多商业的工具。(本人现在的emacs环境还不是很顺手~)

建议:
如果只是处理(小)数据的,用R。结果更可靠,速度可以接受,上手方便,多有现成的命令、程序可以用。

要自己搞个算法、处理大数据、计算量大的,用python。开发效率高,一切尽在掌握。

ps:盲目地用R的包比盲目的地用python的包要更安全。起码R会把你指向一篇论文,而python只是指向一堆代码。R出问题了还有论文作者、审稿人陪葬。

5. 如何通过PypeR来实现在Python中调用R

如何通过PypeR来实现在Python中调用R
In [1]: # LOAD PYTHON PACKAGES

In [2]: import pandas as pd

In [3]: import pyper as pr

In [4]: # READ DATA

In [5]: data = pd.read_table("/home/liuwensui/Documents/data/csdata.txt", header = 0)

In [6]: # CREATE A R INSTANCE WITH PYPER

In [7]: r = pr.R(use_pandas = True)

In [8]: # PASS DATA FROM PYTHON TO R

In [9]: r.assign("rdata", data)

In [10]: # SHOW DATA SUMMARY

In [11]: print r("summary(rdata)")
try({summary(rdata)})
LEV_LT3 TAX_NDEB COLLAT1 SIZE1
Min. :0.00000 Min. : 0.0000 Min. :0.0000 Min. : 7.738
1st Qu.:0.00000 1st Qu.: 0.3494 1st Qu.:0.1241 1st Qu.:12.317
Median :0.00000 Median : 0.5666 Median :0.2876 Median :13.540
Mean :0.09083 Mean : 0.8245 Mean :0.3174 Mean :13.511
3rd Qu.:0.01169 3rd Qu.: 0.7891 3rd Qu.:0.4724 3rd Qu.:14.751
Max. :0.99837 Max. :102.1495 Max. :0.9953 Max. :18.587
PROF2 GROWTH2 AGE LIQ
Min. :0.0000158 Min. :-81.248 Min. : 6.00 Min. :0.00000
1st Qu.:0.0721233 1st Qu.: -3.563 1st Qu.: 11.00 1st Qu.:0.03483
Median :0.1203435 Median : 6.164 Median : 17.00 Median :0.10854
Mean :0.1445929 Mean : 13.620 Mean : 20.37 Mean :0.20281
3rd Qu.:0.1875148 3rd Qu.: 21.952 3rd Qu.: 25.00 3rd Qu.:0.29137
Max. :1.5902009 Max. :681.354 Max. :210.00 Max. :1.00018
IND2A IND3A IND4A IND5A
Min. :0.0000 Min. :0.0000 Min. :0.00000 Min. :0.00000
1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.:0.00000
Median :1.0000 Median :0.0000 Median :0.00000 Median :0.00000
Mean :0.6116 Mean :0.1902 Mean :0.02692 Mean :0.09907
3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.:0.00000
Max. :1.0000 Max. :1.0000 Max. :1.00000 Max. :1.00000

In [12]: # LOAD R PACKAGE

In [13]: r("library(betareg)")
Out[13]: 'try({library(betareg)})\nLoading required package: Formula\n'

In [14]: # ESTIMATE A BETA REGRESSION

In [15]: r("m <- betareg(LEV_LT3 ~ SIZE1 + PROF2 + GROWTH2 + AGE + IND3A, data = rdata, subset = LEV_LT3 > 0)")
Out[15]: 'try({m <- betareg(LEV_LT3 ~ SIZE1 + PROF2 + GROWTH2 + AGE + IND3A, data = rdata, subset = LEV_LT3 > 0)})\n'

In [16]: # OUTPUT MODEL SUMMARY

In [17]: print r("summary(m)")
try({summary(m)})

Call:
betareg(formula = LEV_LT3 ~ SIZE1 + PROF2 + GROWTH2 + AGE + IND3A, data = rdata,
subset = LEV_LT3 > 0)

Standardized weighted resials 2:
Min 1Q Median 3Q Max
-7.2802 -0.5194 0.0777 0.6037 5.8777

Coefficients (mean model with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.229773 0.312990 3.929 8.53e-05 ***
SIZE1 -0.105009 0.021211 -4.951 7.39e-07 ***
PROF2 -2.414794 0.377271 -6.401 1.55e-10 ***
GROWTH2 0.003306 0.001043 3.169 0.00153 **
AGE -0.004999 0.001795 -2.786 0.00534 **
IND3A 0.688314 0.074069 9.293 < 2e-16 ***

Phi coefficients (precision model with identity link):
Estimate Std. Error z value Pr(>|z|)
(phi) 3.9362 0.1528 25.77 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Type of estimator: ML (maximum likelihood)
Log-likelihood: 266.7 on 7 Df
Pseudo R-squared: 0.1468
Number of iterations: 25 (BFGS) + 2 (Fisher scoring)

In [18]: # CALCULATE MODEL PREDICTION

In [19]: r("beta_fit <- predict(m, link = 'response')")
Out[19]: "try({beta_fit <- predict(m, link = 'response')})\n"

In [20]: # SHOW PREDICTION SUMMARY IN R

In [21]: print r("summary(beta_fit)")
try({summary(beta_fit)})
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.1634 0.3069 0.3465 0.3657 0.4007 0.6695

In [22]: # PASS DATA FROM R TO PYTHON

In [23]: pydata = pd.DataFrame(r.get("beta_fit"), columns = ["y_hat"])

In [24]: # SHOW PREDICTION SUMMARY IN PYTHON

In [25]: pydata.y_hat.describe()
Out[25]:
count 1116.000000
mean 0.365675
std 0.089804
min 0.163388
25% 0.306897
50% 0.346483
75% 0.400656
max 0.669489

6. python中r'什么意思

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数据结构转换等。

7. 如何做到R和python的完美配合

python是一门标准化的编程语言,结构比较规范,但是很多时候代码写起来不如R简便。因此,在python中用rpy2包(接口)调用R代码不失为一种两全其美的办法。此外,python中直接装个ggplot的第三方模块来代替matplotlib来画图,可以有效提高工作效率的。

8. python如何调用执行R语言脚本

要用rpy2包的数据包,python才能调用R语言。

9. r语言和python哪个更有用

通常,我们认为Python比R在计算机编程、网络爬虫上更有优势,而 R 在统计分析上是一种更高效的独立数据分析工具。所以说,同时学会Python和R这两把刷子才是数据科学的王道。

R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因此称为R),现在由“R开发核心团队”负责开发。

R基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。

R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面。

R的功能能够通过由用户撰写的包增强。增加的功能有特殊的统计技术、绘图功能,以及编程接口和数据输出/输入功能。这些软件包是由R语言、LaTeX、Java及最常用C语言和Fortran撰写。

下载的可执行文件版本会连同一批核心功能的软件包,而根据CRAN纪录有过千种不同的软件包。其中有几款较为常用,例如用于经济计量、财经分析、人文科学研究以及人工智能。

Python与R语言的共同特点:

Python和R在数据分析和数据挖掘方面都有比较专业和全面的模块,很多常用的功能,比如矩阵运算、向量运算等都有比较高级的用法。

Python和R两门语言有多平台适应性,linux、window都可以使用,并且代码可移植性强。

Python和R比较贴近MATLAB以及minitab等常用的数学工具。

Python与R语言的区别:

数据结构方面,由于是从科学计算的角度出发,R中的数据结构非常的简单,主要包括向量(一维)、多维数组(二维时为矩阵)、列表(非结构化数据)、数据框(结构化数据)。

而 Python 则包含更丰富的数据结构来实现数据更精准的访问和内存控制,多维数组(可读写、有序)、元组(只读、有序)、集合(唯一、无序)、字典(Key-Value)等等。

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

Python是一套比较平衡的语言,各方面都可以,无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处理,Python都有着明显优势。 而R是在统计方面比较突出。

Python的pandas借鉴了R的dataframes,R中的rvest则参考了Python的BeautifulSoup,两种语言在一定程度上存在互补性。

热点内容
诺基亚密码忘了打什么电话 发布:2024-09-17 03:27:09 浏览:555
树深度优先算法 发布:2024-09-17 03:26:58 浏览:472
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662