R包中的后备和可选依赖关系是CRAN方式吗?
我想在我的包中添加一个回退依赖项.问题是我想要符合CRAN并且无法弄清楚如何正确地完成它.
更具体地说,我想使用data.table的fread / fwrite.除此之外,我不想拥有完整的data.table依赖.如果没有安装data.table,我的软件包应该回退到使用标准的read.csv和write.csv. 我见过这个类似的帖子:Proper way to handle optional package dependencies 并且还使用了类似于@Hadley在评论中建议的技术: req <- require(data.table) if(req){ data.table::fwrite(...) } else { write.csv(...) } 这确实有效,但在运行CHECK时我得到一个注意: 在包代码中’library’或’require’调用’data.table’. 这意味着我不会通过CRAN的主管…… 处理这个问题的正确方法是什么? 解决方法
正如文字所说:
>将(过期)调用require()替换为requireNamespace() 所以嘲笑这个(并注意,未经测试)我会做的 myreader <- function(file) { if (requireNamespace("data.table",quietly=TRUE)) { dat <- data.table::fread(file) } else { dat <- read.csv(file) } ## postprocess dat as needed dat } 在GitHub上搜索对用户很有用:cran l = R yourTerm所以请尝试this one.我在许多软件包中使用非常成语. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |