簡體   English   中英

我應該如何引用導入包中的函數?

[英]How should I reference functions in imported packages?

創建R包時,至少有兩種方法可用於引入導入包中的函數。

要么,

  1. 每次調用它時,使用雙冒號運算符明確命名函數, package::function

  2. importFrom(package, function)直接添加到NAMESPACE文件中,或通過#' @importFrom package function roxygen標記添加。

每種方法有哪些優缺點?

每種語法實現的技術差異是否存在?

支持使用package::function

它完全清楚了功能的來源。

支持使用@importFrom package function

它涉及較少的打字,特別是當您的包使用多次功能時。

由於它涉及查找包和調用:: function,因此package::function的運行時性能損失很小。 請參閱https://stackoverflow.com/a/7283511/134830

總的來說,判決是什么?

這兩種方法都可以完成這項工作,並且無論是哪種方式都不是壓倒性的,所以不要為此而失眠。 只需選擇一種方法並堅持下去。

在我的工作地點采用的政策是,對於一些常用的包,應使用@importFrom roxygen標簽。 例如,開發人員應該知道ddply來自plyr ,或者起始str_函數來自stringr 在這種情況下,函數的顯式父母對於知道並不那么有用。 對於這個核心列表之外的函數,(或者如果有任何歧義) ::應該用來清楚它來自哪里。

暫無
暫無

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

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