2015-10-17 114 views
1

我正在構建一個R包並將其發佈到github上。它應該依靠stringr ...然而,儘管它添加到「依賴」和「進口」的說明部分,它似乎已經自動安裝的問題(是找stringr在github也?)。添加非github依賴到github R包?

這裏是我運行命令(想象一個新的[R安裝):

install.packages("devtools") 
devtools::install_github("tcarpenter216/packagename") 

[替換上面「包名」我的包名稱] ...這是返回以下錯誤:

Downloading GitHub repo tcarpenter216/[email protected] 
Error in pull_off("#(.*)$") : 
    cannot open file   '/Users/tcarpenter/Library/R/3.2/library/stringr/R/stringr.rdb': No such file or directory 

任何想法如何把依賴託管在GitHub上一包?這顯然是我做錯了嗎?

+2

你必須有命名空間中的文件的東西,太。你不能只把它放在描述 – rawr

+2

錯誤。依賴關係進入'描述'。 –

回答

3

你是混亂的包,包的依賴性,什麼庫如CRAN可以做 - 只需滴代碼到GitHub上。

GitHub的源代碼庫做解決依賴關係。

GitHub源代碼存儲庫是而不是 R代碼存儲庫。

但是,你可以將它們變成這樣的R代碼庫,這就是我的drat包(在CRAN和GitHub上)所做的。所以請參閱包中的簡單文檔。它填補了你在這裏確定的空白。

+0

謝謝。澄清(因爲我不是100%確定我在追隨),....所以如果我有一個發佈在GitHub上的包,我無法讓它從CRAN「自動安裝」依賴關係? – tcarpenter

+0

如果這些相關軟件包位於您的R會話知道的回購站上,則可以通過'install.packages()'安裝依賴項。所以,簡單地說,如果你有在GitHub上一個DRAT一個包,從其他已知的回購它的依賴(即CRAN,同樣DRAT,其他回購你已經宣佈,...),那麼它的工作原理 - 因爲'install.packages() '支持。 –

+0

明白了。那麼,如何將「install.packages()」命令添加到我的軟件包中,讓它按照您的說法進行操作?我會把它放在一個函數中嗎? – tcarpenter