我正在准备一个 R 包以提交给 CRAN,其中包括两个演示和一个小插图(基本上解释了两个演示)。一个演示运行相对较快,另一个需要相当长的时间(超过 30 分钟)。为了加快演示和小插图的速度,我创建了一个 Rda 文件,其中包含需要很长时间才能运行的函数的结果。具体来说,这里是代码:
matchfile <- system.file("doc/tmatch.nmes.rda", package="TriMatch")
if(file.exists(matchfile)) {
load(matchfile)
} else {
trimatch <- cmpfun(trimatch)
tmatch.smoke <- trimatch(tpsa.smoke, exact=nmes[,c("LastAge5","MALE","RACE3")])
tmatch.packyears <- trimatch(tpsa.packyears, exact=nmes[,c("LastAge5","MALE","RACE3")])
save(tmatch.smoke, tmatch.packyears, file=matchfile)
tools::resaveRdaFiles(matchfile)
}
我可能可以摆脱file.exists
检查,因为我已经运行了代码并将tmatch.nmes.rda
文件包含在包中,但我想展示该文件是如何创建的。这对我在当地很有效。小插图现在可以在合理的时间内构建,并且演示也运行得很快。tmatch.nmes.rda
即使使用resaveRdaFiles
. 现在的问题是,它R CMD check
给了我一个关于数据文件大小的注释。在向 CRAN 维护者辩护之前,我在这里寻求建议。以下是我的问题:
我可以阻止
R CMD check
在小插图源中运行代码吗?我知道我可以在本地,但是一旦我提交给 CRAN,我该如何防止这种情况发生?如果我能做到这一点,我可以省略数据文件。包含一个预处理的数据文件来加速小插图和演示是一个坏主意吗?
我正在使用的包托管在这里:https ://github.com/jbryer/TriMatch