日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
同一個項目中讓R和Python無縫工作的五種方法

Python在某些方面做得最好,R在某些方面做得最好,因此,如果我們在需要的時候可以同時使用這兩種方法,那么我們就可以發(fā)揮出最好的性能。 在最近的示例中,我想創(chuàng)建一個Shiny應(yīng)用程序來生成參數(shù)化的Powerpoint文檔,這個應(yīng)用我是用R的tidyverse對我的數(shù)據(jù)進行編碼處理,使用Python編寫了Powerpoint編輯代碼,因為這在python-pptx包中很容易。

現(xiàn)在,在RStudio IDE中使用兩種語言進行操作確實非常容易。 為此,您需要在R中安裝和加載網(wǎng)狀軟件包。您可以執(zhí)行以下五項操作,以使您在同一項目中獲得兩種語言的無縫編碼體驗:

在項目啟動時定義Python環(huán)境

為避免與使用錯誤的Python解釋器相關(guān)問題,首先需要在項目啟動時通過創(chuàng)建.Rprofile文件并將其保存在項目目錄中來定義Python環(huán)境。 您的.Rprofile包含將在您的項目啟動時執(zhí)行的代碼。 我通常在.Rprofile中有這兩行代碼:

 
 
 
 
  1. Sys.setenv(RETICULATE_PYTHON = "")  
  2. print(paste("Python environment forced to", Sys.getenv("RETICULATE_PYTHON"))) 

其中,是您要使用的Python環(huán)境中Python可執(zhí)行文件的路徑。 第一個命令將其設(shè)置為您的python可執(zhí)行文件。 第二個命令將打印此確認(rèn),該確認(rèn)將在您每次啟動項目時顯示在您的終端中。 這是我啟動一個項目時終端的外觀:

使用repl_python()在Python中實時編碼

在項目中如果需要測試Python和R可以使用 Reticulate軟件包中的repl_python()函數(shù)將R終端切換到Python終端,以便您可以在Python中進行實時編碼。 您可以使用exit命令退出它,然后在R中編寫更多代碼,然后再回到Python終端,它仍然會記住上一個會話中的所有對象,這意味著它很容易在各種語言之間無縫地移動。 這是一個簡單的示例:

在Python和R之間交換對象

可以在Python和R之間交換任何相當(dāng)標(biāo)準(zhǔn)的數(shù)據(jù)對象,例如值,列表和dataframes 。要在Python中使用名為myrobject的R對象,可以使用r.myrobject進行調(diào)用。 要在R中使用名為mypythonobject的Python對象,可以使用py $ mypythonobject進行調(diào)用。 這是另一個實際的操作示例,其中我將R中的themtcars數(shù)據(jù)集引入了Python:

數(shù)據(jù)對象將根據(jù)不同的語言轉(zhuǎn)換為它們的等效結(jié)構(gòu)。 例如,R中的列表將被翻譯成Python中的字典:

將Python函數(shù)轉(zhuǎn)換為R函數(shù)

當(dāng)同時使用這兩種語言時,你最終會需要將Python代碼作為一個R的函數(shù)來執(zhí)行.如果將編寫的Python函數(shù)寫到一個文件中,然后R中調(diào)用source_python(),那么這個文件可以以源代碼文件的形式使用。下面是一個簡單的例子,我寫了一個Python函數(shù)將兩個數(shù)字相加,并將其保存在文件sumof.py中:

 
 
 
 
  1. def sumof(a, b):  
  2. return a+b 

現(xiàn)在,我可以獲取sumof.py并將其變成和R函數(shù):

創(chuàng)建包含R和Python代碼的MD文檔

正確設(shè)置.Rprofile后,您可以創(chuàng)建具有兩種語言代碼塊的文檔,并且可以在代碼塊之間交換對象。 以下是一些簡單的R Markdown代碼,用以說明這一點:

這會產(chǎn)生以下輸出:

同樣,你可以用一種語言編寫函數(shù),在另一種語言中輕松使用它們:

對我來說,這個功能讓我的工作中有了更多的可能。我希望這些技巧能夠幫助您開始探索Python和R所提供的最佳功能。


名稱欄目:同一個項目中讓R和Python無縫工作的五種方法
網(wǎng)站路徑:http://www.5511xx.com/article/dpdeiei.html