2010-08-04 23 views
0

我想修復一個包,但無法弄清楚如何編輯它。我可以將download the source from R-Forge作爲.tar.gz並解壓縮。有一個「R」目錄的源代碼和一個「測試」目錄。如何修復開源R包中的錯誤?

如何在我自己的項目中包含源代碼來測試我的編輯?

如何運行測試?每個測試都以「庫(吸墨紙)」開頭。如何從我下載的源代碼中加載庫。

+0

相關http://stackoverflow.com/questions/3384598/how-to-edit-r-library-sources? – Marek 2010-08-04 07:10:59

回答

-2

我發現我可以加載所有的來源做從荒謬的重新包裝救我:

for (file in dir("../R", pattern="*.R", full.names=TRUE)) { 
    source(file) 
} 
+4

''source'的例子中包含了一個類似的函數......但是我真的沒有幫助,因爲你知道如何閱讀手冊,對嗎? – 2010-08-04 13:37:38

0

我所做的是以下(IIRC)刪除舊包remove.packages。再次將您的新軟件包壓縮成tar.gz文件(使用您更改的源代碼)。安裝帶有pkg =路徑的install.packages的新軟件包到您的壓縮庫,並且repos = NULL。

+0

哇。這是一個令人難以置信的痛苦。無論如何要做到這一點,而不必在每次更改後不斷地壓縮我的源代碼? – 2010-08-04 04:20:49

+5

你已經去了電腦,自動化。 – deinst 2010-08-04 17:07:29

4

推薦流程在R安裝附帶的手冊'Writing R Extensions'中有詳細描述。

在網絡上也有很多教程。

+2

@Ben McCann:他並沒有告訴你RTFM,他指出你是正確的...... – nico 2010-08-04 07:17:52

+0

呵呵,下次我會盡量不那麼直率。我很感激幫助。關於堆棧溢出這麼好的事情是,您可以針對快速問題獲得特定的答案。我很欣賞指向手冊特定部分的指針,其中可能包含一段摘錄:o)不太有用的是,它在這141頁的某處。 – 2010-08-04 17:58:21

+6

如果您感謝幫助,請將答案投票。並且放心,如果你想把R好好使用,你將不得不閱讀141頁以上的內容。多得多。 – 2010-08-04 18:13:32

2

無需重新壓縮的來源。剛剛從源代碼重新加載包驅動器上:

install.packages(/path/to/package, repos = NULL, type="source") 

您的R兩端的文件做for循環循環會在某些情況下工作的方法,但是在別人也可能不是。例如,如果編譯了非R代碼,則循環遍歷* .R文件可能無法正常工作。所以通常再安裝一次install.packages()會更好。

順便說一句,如果你克隆一個版本控制回購硬盤驅動器,你通常不會得到zip文件。所以使用相同的方法來安裝。

0

當我在做一個包裝測試,我用一個小bash腳本,看起來像這樣:

#!/bin/bash 
#build the package from source 
R CMD build ../pkgdirectory/ 
#remove the old version and install the new one 
R CMD REMOVE pkgname 
R CMD INSTALL pkgname_0.7.tar.gz 

取代軟件包的名稱以適當的名稱。將它保存爲「make」,然後在完成主要編輯時運行它。然後,您的測試腳本可以像正常一樣使用庫(pkgname)。

+0

您可以跳過刪除步驟;它爲你完成後面的安裝。但是,您可以根據您創建的tarball添加一個'R CMD check'步驟。 – 2010-08-04 18:29:24

+0

感謝您的刪除提示。是的,我經常包括支票,特別是在把套餐放在一起的早期階段,但是當我只是調整代碼時,我會跳過這一步,因爲它需要一段時間。 – chrisamiller 2010-08-05 20:11:17