3

我正在准备一个 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 维护者辩护之前,我在这里寻求建议。以下是我的问题:

  1. 我可以阻止R CMD check在小插图源中运行代码吗?我知道我可以在本地,但是一旦我提交给 CRAN,我该如何防止这种情况发生?如果我能做到这一点,我可以省略数据文件。

  2. 包含一个预处理的数据文件来加速小插图和演示是一个坏主意吗?

我正在使用的包托管在这里:https ://github.com/jbryer/TriMatch

4

0 回答 0