寫在前面
其實大家在Rstudio
中像下圖這樣直接創(chuàng)建Python
腳本后鄙皇,Rstudio
便可以把代碼直接交給Python
命令解釋器來處理近上。
或者說,大家也可以在寫Rmarkdown
時直接把代碼塊改成這樣:
這樣也可以在代碼塊中執(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
包滴肿、在R
和Python
之間傳遞對象或數(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 reticulate
中Python
的使用
你可以在Rmarkdown
的代碼框中直接寫Python
的原生代碼:
也可以像下面這樣通過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