R:使用devtools自动将import(data.table)添加到NAMESPACE [英] R: Added import(data.table) to NAMESPACE automatically using devtools

查看:161
本文介绍了R:使用devtools自动将import(data.table)添加到NAMESPACE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用devtools自动将import(data.table)正确添加到NAMESPACE文件?

How do I correctly add import(data.table) to the NAMESPACE file automatically using devtools?

通常,如果我的软件包使用data.table,我只是手动编写它,但是随后我将无法使用@exportdevtools::document正确创建NAMESPACE文件,因为它会覆盖我已经添加的文件或根本不更新文件.

Generally if my packages use data.table I just write it in manually, but then I can't use @export and devtools::document to create the NAMESPACE file properly, as it either overwrites the addition I've made, or doesn't update the file at all.

另外,它说不手动编辑...

Plus, it says not edit it manually...

谢谢

示例package/R/function.R代码

#' @export
#' @import data.table
test_data_table = function(dt) {
  dt[, a := 3]
}


通话示例


Call example

> test_data_table
function(dt) {
  dt[, a := 3]
}
<environment: namespace:package>

> test_data_table(dt)
 Show Traceback

 Rerun with Debug
 Error in `[.data.frame`(x, i, j) : could not find function ":=" 

推荐答案

您可能根本不应该使用import(*),除非您确实需要包中的每个导出对象.而是使用importFrom(pkg, obj1, obj2, ...)仅导入所需的对象.

You probably shouldn't use import(*) at all, unless you really need every exported object from a package. Instead, use importFrom(pkg, obj1, obj2, ...) to import only those objects you need.

来自 Writing R Extensions 手册,S1.5.1:

From the Writing R Extensions manual, S1.5.1:

有选择地使用importFrom而不是import是一种很好的做法,尤其是从具有十几个出口的软件包中导入时,特别推荐.

Using importFrom selectively rather than import is good practice and recommended notably when importing from packages with more than a dozen exports.

尽管如此,如果 do 需要导入所有内容,请使用#' @import data.table.

Nonetheless, if you do need to import everything, use #' @import data.table.

这篇关于R:使用devtools自动将import(data.table)添加到NAMESPACE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆