一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - R語言 - R語言入門使用RStudio制作包含Rcpp代碼的R包

R語言入門使用RStudio制作包含Rcpp代碼的R包

2022-01-20 15:38Kanny廣小隸 R語言

這篇文章主要為大家介紹了R語言入門使用RStudio來制作包含Rcpp代碼的R包,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

當我們進行模擬想要再次進行提速時,通常都會使用Rcpp將我們的R代碼改成C++代碼。具體Rcpp的使用可參考博客:Rcpp入門R代碼提速方法過程R語言學習RcppEigen進行矩陣運算

平時在我們使用的時候,直接使用Rcpp::sourceCpp()就可以直接將我們的C++代碼中的函數進行導入,這不會遇到什么問題,但如果我們想要使用snowfall進行并行時就不能再這樣做了。遇到的問題在博客中有進行說明:R中兩種常用并行方法――2. snowfall。

而解決這個問題的有效途徑,就是將我們的Rcpp代碼進行打包,然后再對包進行調用。下面我們就來介紹:如何使用RStudio制作包含Rcpp代碼的R包。

 

1. 創建項目

首先我們進入RStudio,然后選擇左上角的File―New Project。

新建Project后會得到如下圖所示的界面,我們接著選New Directory,

R語言入門使用RStudio制作包含Rcpp代碼的R包

再選擇R Package,

R語言入門使用RStudio制作包含Rcpp代碼的R包

最后在得到如下所示的界面后,我們在Package Name中輸入我們包的名稱,然后再在下面選擇Add,將我們的.cpp格式的C++文件選擇進去(里面是我們的函數)。最后點擊Create package,即可創建一個R包的project了。

R語言入門使用RStudio制作包含Rcpp代碼的R包

創建完之后,RStudio會彈出一個新的界面,如下圖所示。

R語言入門使用RStudio制作包含Rcpp代碼的R包

然后我們需要對下述界面里面的一些配置文件進行一定的修改,然后才能完善我們的R包。

 

2. 修改一些文件

從上面界面的右下角的Files框框中,可以發現已經多出了很多文件,包括DISCRIPTION等文件以及man、R、src三個文件夾。

在R文件夾中存的是R代碼,src文件夾中是C++代碼(包括我們之前添加的C++代碼)。

R語言入門使用RStudio制作包含Rcpp代碼的R包

R語言入門使用RStudio制作包含Rcpp代碼的R包

可能你的C++代碼中只有添加進去.cpp文件,由于我的代碼中不止使用了#include <Rcpp.h>,還有使用#include <RcppEigen.h>,這里注意,一定需要在DISCRIPTION文件的最后添加下面兩行(尤其是LinkingTo,不然會編譯失敗):

Imports: Rcpp
LinkingTo: Rcpp, RcppEigen

此外還可以在DISCRIPTION文件,添加一些作者姓名等一些重要信息。

R語言入門使用RStudio制作包含Rcpp代碼的R包

直接點開DISCRIPTION文件,會如上圖所示,我們直接進行修改即可。這里需要注意一下,Imports里面涉及到軟件的版本,是根據你R中現有包的版本來,如果想讓更多的電腦使用,在不影響程序使用的前提下,可以適當降低依賴包的版本。

 

3. 打包

最后一步就是打包,這里介紹兩種打包方式:

選擇上方的Build――Build Source Package

R語言入門使用RStudio制作包含Rcpp代碼的R包

點擊右上角的Build中的Build & Reload

R語言入門使用RStudio制作包含Rcpp代碼的R包

第一種方法打包成功后,當下面出現DONE字樣時,說明包會在默認路徑下安詳地躺著了。
第二種方法打包成功后會自動library載入。

 

4. 使用Eigen或其它依賴庫會出現的問題

如果我們再.cpp文件中使用的不止有Rcpp庫,還有別的庫,比如說Eigen。這時需要注意,用上面的方法打包是失敗的,會顯示沒有Eigen這個庫。

這個解決的方法也很簡單,直接在DISCRIPTION文件的LinkTo后面加上RcppEigen即可,如下圖所示:

R語言入門使用RStudio制作包含Rcpp代碼的R包

可能遇到的其他問題 制作R包后載入包內函數時,出現 “…” not available for .Call() for package “…” 錯誤

問題解決傳送門

R包制作后出現not available for錯誤問題解決

最后,就可以開心地享用新鮮出爐的包來做snowfall并行或者發給別人使用啦!

以上就是R語言入門使用RStudio制作包含Rcpp代碼的R包的詳細內容,更多關于RStudio制作Rcpp代碼R包的資料請關注服務器之家其它相關文章!

原文鏈接:https://kanny.blog.csdn.net/article/details/82260929

延伸 · 閱讀

精彩推薦
  • R語言R語言gsub替換字符工具的具體使用

    R語言gsub替換字符工具的具體使用

    這篇文章主要介紹了R語言gsub替換字符工具的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    lztttao10372021-12-24
  • R語言R語言實現支持向量機SVM應用案例

    R語言實現支持向量機SVM應用案例

    本文主要介紹了R語言實現支持向量機SVM應用案例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    一天_pika5222022-01-18
  • R語言基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    這篇文章主要介紹了基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    truffle52815052022-01-05
  • R語言R語言讀取xls與xlsx格式文件過程

    R語言讀取xls與xlsx格式文件過程

    這篇文章主要為大家介紹了使用R語言讀取xls與xlsx格式文件的過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪...

    Kanny廣小隸11982022-01-20
  • R語言R語言中的vector(向量),array(數組)使用總結

    R語言中的vector(向量),array(數組)使用總結

    這篇文章主要介紹了R語言中的vector(向量),array(數組)使用總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要...

    A葉子葉來5772021-11-14
  • R語言如何用R語言繪制散點圖

    如何用R語言繪制散點圖

    這篇文章主要介紹了如何用R語言繪制散點圖,幫助大家更好的理解和學習使用R語言,感興趣的朋友可以了解下...

    菜鳥教程13002021-12-23
  • R語言R語言常量知識點總結

    R語言常量知識點總結

    在本篇文章里小編給大家整理了一篇關于R語言常量知識點總結內容,有興趣的朋友們可以學習分享下。...

    R語言教程網12102021-12-29
  • R語言R語言中qplot()函數的用法說明

    R語言中qplot()函數的用法說明

    這篇文章主要介紹了R語言中qplot()函數的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    Jack_丁明12752022-01-05
主站蜘蛛池模板: 大象传媒免费网址 | 桃色公寓 | 香蕉国产人午夜视频在线 | 国产视频a区 | ass老妇黑森林pic | 天堂a视频| 精品国产美女福利在线 | 亚洲26uuuu最新地址 | 小小水蜜桃视频高清在线播放 | 亚洲欧美自偷自拍另类小说 | 女同学高中你下面好紧 | 秋霞理论在一l级毛片 | 好大好硬好深好爽gif图 | 亚洲天堂网在线观看视频 | 国产香蕉视频在线观看 | 美女被扣逼 | 免费看3d小舞被躁视频网站 | 暖暖暖免费观看在线观看 | 亚洲一二区视频 | 天堂中文在线免费观看 | 国内精品久久久久影院网站 | 欧美 亚洲 一区 | 久久国产乱子伦精品免费不卡 | 美女伊人网 | 国产精品久久久久久久久免费 | 欧美 亚洲 一区 | 99这里只有精品在线 | 2022超帅男同gayxxx | 国产良心大作白丝精厕 | 免费观看在线 | 小早川怜子在线播放精品 | 特黄特色大片免费影院 | 2019自拍偷拍视频 | 日本三级在丈面前被耍了 | 男女男精品视频 | 日本精品一二三区 | 爽好紧别夹宝贝叫大声点护士 | 日本一本二本三区免费 | 国内精品在线播放 | 欧美日韩国产一区二区三区在线观看 | 欧美一区二区三区免费看 |