在开发R包时,我常常打开Packrat并使用本地化的存储库,并在我在会话中探索时进行开发。但是在发布软件包时,召回并手动添加我在开发包中使用的每个依赖项都是一件非常令人头疼的事。有(半)自动方式吗?
例如,在NodeJS开发中,我们可以使用npm install --save
,并且依赖项将自动添加到package.json
。
答案 0 :(得分:4)
是的,使用roxygen2
生成您的create view MyTableEx As
SELECT Every, Other, Column
FROM MyTable
文件。
生成包级别文档的示例方法:
NAMESPACE
注意:我倾向于在包级文档中保留我的import语句。您可以在函数文档中使用这些相同的语句。
使用#' @details
#' \tabular{ll}{
#' Package: \tab \cr
#' Type: \tab Package\cr
#' Version: \tab 1.0.0\cr
#' Date: \tab 2016-05-15\cr
#' License: \tab MIT \cr
#' }
#' @useDynLib pkg
#' @importFrom Rcpp evalCpp
#' @importFrom methods is
#' @importFrom stats ts as.ts is.ts
#' @import ggplot2
"_PACKAGE"
进行特定导入。
否则,对给定包中的所有函数使用@importFrom <pkg> <function1> <function2>
。
修改强>
要将其锁定到特定版本,您需要修改@import <pkg>
文件的DESCRIPTION
部分,如下所示:
Imports:
答案 1 :(得分:3)
执行此操作的常用方法(虽然不是“老派”R程序员使用的很多,据我所知,他们手工维护他们的V
文件...)是手动插入roxygen2 {代码中的{1}}语句...例如
NAMESPACE
虽然拥有一个自动化系统肯定会有所帮助,但如果没有别的话,就提供提示。当然以这种方式维护依赖关系(确保根据需要为每个具有依赖关系的函数添加@importFrom
语句)比在之后跟踪(仍然)需要的依赖关系更好开发代码。
# returns a true family() object iff one was given
## to glmmTMB() in the first place ....
##' @importFrom stats family
##' @export
family.glmmTMB <- function(object, ...) {
object$modelInfo$family
}
和@importFrom
(转换为@import
和@importFrom
语句)都是合法的,R extensions guide说
有选择地使用importFrom而不是导入是一种很好的做法,特别推荐从具有十几个导出的软件包导入时。
(“良好做法”翻译为“CRAN维护者如果不这样做就会大喊”......)
import
语句:R将包版本依赖项放在importFrom
文件和importFrom
语句的Imports:
字段中在DESCRIPTION
文件中:roxygen2会自动生成此信息,但我认为从roxygen2指令到importFrom
/ NAMESPACE
信息的映射不够精细,足以支持这一点...... NAMESPACE
会提供有关需要导入的推荐软件包的功能的提示。