當前位置:首頁 » 編程語言 » 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,兩種語言在一定程度上存在互補性。

熱點內容
ios儲存密碼哪裡看 發布:2024-09-08 09:30:02 瀏覽:869
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:653
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:744
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:173
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:780
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811