2012-07-04 59 views
1

我想構建一個包,其中涉及根據用戶的系統使用不同的包加載來自mysql的數據。根據每個體系結構的不同包編寫一個R包

對於Windows用戶,它將通過ODBC連接通過軟件包RODBC,而linux/mac用戶使用RMySQL軟件包。

在腳本中,下面的作品非常好:

if(.Platform$OS.type == "unix") { 
library(RMySQL) 
} else { 
    library(RODBC) 
} 

現在我想有這些包在我的包的載荷裝載。 我通常會將它添加到描述文件的'Depends:'下,但是這不允許使用可選的子句。

處理這個問題的最佳方法是什麼?

回答

1

我認爲解決此問題的常用方法是通過.onLoad函數(請參見?.onLoadhelp(".onLoad"))。

Section 1.6.3 Writing R Extension Manuals給出了一個概述。也許別人可以給你一個很好的例子,到目前爲止我還沒有使用它。

+0

謝謝!這是我的第一個包,我必須承認我迄今沒有閱讀Writing R Extension手冊。 – nassimhddd

+0

@ cafe876那你應該這樣做。至少根據目錄顯示與您想要執行的內容相關的章節。 – Henrik

相關問題