如何在R語言中調(diào)用Python

寫在前面

其實大家在Rstudio中像下圖這樣直接創(chuàng)建Python腳本后鄙皇,Rstudio便可以把代碼直接交給Python命令解釋器來處理近上。

1.webp.jpg

或者說,大家也可以在寫Rmarkdown時直接把代碼塊改成這樣:

1.webp (1).jpg

這樣也可以在代碼塊中執(zhí)行Python命令:

print('I am Python')
## I am Python

但很多情況下我們需要R語言(R語言基礎(chǔ)學(xué)習(xí)手冊)和Python(``[生信Python速查手冊](http://mp.weixin.qq.com/s?__biz=MzAwMzIzOTk5OQ==&mid=2247499921&idx=1&sn=dcd6f95596e3de9bf378d850c217fe78&chksm=9b3cb9c1ac4b30d7bbd44057b181f87541f5904d24f903494ae557e768ae00c208c1b68b45c7&scene=21#wechat_redirect)``)之間更高的交互性德谅,例如上面我們在Rstudio中寫Python腳本魏宽、利用Rmarkdown植入Python代碼塊、在R中調(diào)用Python包滴肿、在RPython之間傳遞對象或數(shù)據(jù)框岳悟、靈活調(diào)用各版本的Python等等。這些應(yīng)用對于單細(xì)胞空轉(zhuǎn)領(lǐng)域(空間轉(zhuǎn)錄組學(xué)習(xí)手冊合輯)的同學(xué)尤為重要泼差,這里給大家推薦一個神包Reticulate贵少,能夠讓大家在R語言中實現(xiàn)向Python的無縫切換。

Reticulate的使用

二堆缘、Reticulate的使用

2.1 安裝

# 可以直接從r-cran上安裝  if(!require(reticulate))install.packages("reticulate")
## 載入需要的程輯包:reticulate
## Warning: 程輯包'reticulate'是用R版本4.3.3 來建造的
library(reticulate)packageVersion('reticulate')# 看一下版本
## [1] '1.35.0'

2.2 設(shè)置Python路徑與環(huán)境

如果是Linux滔灶,可以如此設(shè)置reticulate調(diào)用的Python路徑:

use_python("/usr/local/bin/python")

如果是Windows,那么需要加上python程序的.exe后綴名:

use_python("C:/Users/Administrator/Documents/.virtualenvs/r-reticulate/Scripts/python.exe")

當(dāng)然吼肥,你也可以像conda那樣創(chuàng)建虛擬環(huán)境來使用Python,默認(rèn)的Python環(huán)境為

# 創(chuàng)建名為TF_GPU的虛擬環(huán)境:virtualenv_create('TF_GPU')# 激活并使用虛擬環(huán)境:use_virtualenv('TF_GPU')  # 刪除對應(yīng)虛擬環(huán)境:virtualenv_remove('TF_GPU')
# 查看虛擬環(huán)境:virtualenv_list()
## [1] "r-reticulate" "TF_GPU"

reticulate甚至能夠直接幫你配置conda環(huán)境:

# 安裝conda環(huán)境:reticulate::install_miniconda() # 創(chuàng)建名為my_conda的conda虛擬環(huán)境:conda_create('TF_GPU',python_version = 3.9)#  指定python版本
# 激活并使用虛擬環(huán)境:use_condaenv('TF_GPU')
# 利用conda環(huán)境安裝python包"tensorflow":conda_install(packages ='tensorflow-gpu')

你可以通過這種方式來查看當(dāng)前reticulate下的Python配置信息:

reticulate::py_config()
## python:         C:/Users/Administrator/AppData/Local/r-miniconda/envs/TF_GPU/python.exe## libpython:      C:/Users/Administrator/AppData/Local/r-miniconda/envs/TF_GPU/python39.dll## pythonhome:     C:/Users/Administrator/AppData/Local/r-miniconda/envs/TF_GPU## version:        3.9.18 | packaged by conda-forge | (main, Dec 23 2023, 16:29:04) [MSC v.1929 64 bit (AMD64)]## Architecture:   64bit## numpy:           [NOT FOUND]## ## NOTE: Python version was forced by RETICULATE_PYTHON_FALLBACK

2.3 reticulatePython的使用

你可以在Rmarkdown的代碼框中直接寫Python的原生代碼:

2.webp.jpg

也可以像下面這樣通過R來編譯Python代碼录平,例如導(dǎo)入os包:

os <- import("os")

需要注意的是,在R中直接用Python缀皱,需要把原來包名.函數(shù)名的形式換為包名$函數(shù)名的形式:

os$getcwd()# 在python中應(yīng)該是os.getcwd()
## [1] "H:\\公眾號\\2024\\free\\如何在R語言中調(diào)用Python"

rmd文件

感興趣的同學(xué)可以看一下我的rmd文件跟著學(xué)習(xí)一下:

鏈接:https://pan.baidu.com/s/1ZPOBiy1uk4_CA-AOTeDgag?pwd=5p6x

3.webp.jpg

參考

https://github.com/rstudio/reticulate

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斗这,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子啤斗,更是在濱河造成了極大的恐慌表箭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件争占,死亡現(xiàn)場離奇詭異燃逻,居然都是意外死亡序目,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門伯襟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猿涨,“玉大人,你說我怎么就攤上這事姆怪∨炎” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵稽揭,是天一觀的道長俺附。 經(jīng)常有香客問我,道長溪掀,這世上最難降的妖魔是什么事镣? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮揪胃,結(jié)果婚禮上璃哟,老公的妹妹穿的比我還像新娘。我一直安慰自己喊递,他們只是感情好随闪,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骚勘,像睡著了一般铐伴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俏讹,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天当宴,我揣著相機(jī)與錄音,去河邊找鬼藐石。 笑死即供,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的于微。 我是一名探鬼主播逗嫡,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼株依!你這毒婦竟也來了驱证?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤恋腕,失蹤者是張志新(化名)和其女友劉穎抹锄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡伙单,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年获高,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吻育。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡念秧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出布疼,到底是詐尸還是另有隱情摊趾,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布游两,位于F島的核電站砾层,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贱案。R本人自食惡果不足惜肛炮,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宝踪。 院中可真熱鬧铸董,春花似錦、人聲如沸肴沫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颤芬。三九已至,卻和暖如春套鹅,著一層夾襖步出監(jiān)牢的瞬間站蝠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工卓鹿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留菱魔,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓吟孙,卻偏偏與公主長得像澜倦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杰妓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容