2012-07-04 67 views
2

我創建了一個n R程序包,它對其他程序包有一定的依賴關係。 因此,我在說明文件中將包名稱指定爲Imports並取決於。 在命名空間文件中,我指定應該導出包。 我檢查了寫作R擴展手冊,似乎沒有任何其他的我應該添加。R程序包依賴關係的問題

當我嘗試運行程序包時,它無法調用程序包所依賴的函數。是否需要指定其他參數才能調用這些函數。

我,使用R版本2.15.0

請幫我解決這個問題。

謝謝。

NAMESPACE: 
import("RHive") 
export("bigEDA") 
export("procFreq") 
export("procUnivariate") 

我希望來自RHive的所有功能都與我的軟件包在相同的環境中。 只是無法做到這一點。我試過指定和exportFrom("RHive","rhive.query") 這也行不通。 :(

+0

在你的NAMESPACE文件中,你應該導出函數,而不是你的包。考慮在你的問題中發佈你的描述,或者從NAMESPACE中提取一個摘錄,這樣我們就可以看到你的嘗試。 – Andrie

+0

你可以指定兩個,如果我指定導出,它應該導出所有用戶級別的函數。 我已經嘗試exportFrom添加所需的所有功能,似乎沒有工作。 我想這就是你提到的,如果不是請解釋更多。 –

+0

要導出包中的所有函數,您需要列出每個導出的函數,或者使用正則表達式。在您的問題中發佈您的NAMESPACE文件,以便我們可以看到您所做的事情。 – Andrie

回答

0

你有沒有在你的終端或shell中運行R CMD check NAMEofYOURpackage,以測試你的描述和命名空間的文件是否是好?這個檢驗程序創建的文件00install.out,可以給你一個提示哪裏出錯了。

如果你只是想使用外國產品的功能在你的包中使用該說明文件中有你只需要輸入:Depends: RHive

使用export命名空間中的文件到您的函數導出到用戶。如果你有一個函數sum()和。你希望安裝你的軟件包的用戶能夠使用這個函數:exportMethods(sum)(你可以在這裏添加更多的功能,用逗號分隔)

+0

是的,我做了所有這些,描述文件有所有依賴。 R CMD檢查工作得很好,它不起作用。 我知道我不需要爲現有包中的函數指定導出,只需要在說明文件中指定depends或imports。 有一些比這個錯誤更重要的東西。我一直試圖弄清楚現在兩個星期。 –

+0

如果我使用roxygen2做NAMESPACE,該怎麼辦? (我看到出口問題) – userJT