熱線電話:13121318867

登錄
首頁精彩閱讀用C語言為R語言寫擴展模塊的幾點體會
用C語言為R語言寫擴展模塊的幾點體會
2018-06-27
收藏

用C語言為R語言寫擴展模塊的幾點體會

1. 由于R是向量語言,所用簡單變量均為向量,所以參數傳遞時均是傳遞的指針。矩陣也可當成向量來處理,不過是一列接一列,是一長向量。

2. 盡量用 R 的函數 R_alloc 來申請內存,這樣R將能自動回收,不必自己去 free。
3. 最好使用 R_CMethodDef cMethods[] 和 R_init_myLib(DllInfo *info) 登記C函數。
4. 在NAMESPACE文件中加入兩行:

exportPattern("^[^\\.]")

useDynLib(DLL_name) 
第一行輸出所有不是以'.'開頭的函數名;
第二行中動態包不用擴展名(.so 或 .dll),這樣,在R包中通過 library.dynam(“DLL_name”, “package_name“) 裝入動態庫后,就可以直接使用C擴展函數了,否則,在 library(package_name)之后,還必須動態裝入 (dyn.load)DLL才行。

5. 用 R CMD SHLIB 可以編譯產生動態庫。打包則為:
Linux下:
    R CMD build project_dir
windows下,需要先安裝編譯環境??捎?Rtools (http://www.murdoch-sutherland.com/Rtools/)來安裝。還可安裝微軟的htmlhelp.exe。然后運行命令:
    Rcmd build --force --binary project_dir


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢