簡體   English   中英

R:如何讓我的包使用另一個包?

[英]R: How do I make my package use another package?

這是一個非常簡單的問題。 我正在擴展某人的包裹。 它當前使用包 A、B,它們列在描述文件中。

如果我需要包 C 中的函數 - 將包添加到依賴項中 - 我是否只需將包添加到說明文件中就可以了? 進入哪個部分 - 依賴還是進口? 還有其他步驟嗎? 一旦我的代碼需要使用包 C 函數,我是否需要使用前綴 C::functionInC()?

簡短回答:將 C 添加到導入:並且在使用 C 函數時,使用雙分號前綴。

更長的上下文:

下面的鏈接提供了以下建議http://r-pkgs.had.co.nz/namespace.html#imports

R 函數

如果您只使用另一個包中的幾個函數,我的建議是記下描述文件的 Imports: 字段中的包名稱,並使用 :: 顯式調用該函數,例如 pkg::fun()。

如果您重復使用函數,則可以通過使用 @importFrom pgk fun 導入函數來避免 ::。 這也有一個小的性能優勢,因為 :: 增加了大約 5 µs 的函數評估時間。

或者,如果您重復使用另一個包中的許多函數,則可以使用 @import 包導入所有這些函數。 這是最不推薦的解決方案,因為它使您的代碼更難閱讀(您無法分辨函數來自何處),並且如果您 @import 多個包,則會增加函數名稱沖突的可能性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM