R:使用devtools自动向命名空间添加导入(data.table)
如何使用R:使用devtools自动向命名空间添加导入(data.table),r,namespaces,devtools,R,Namespaces,Devtools,如何使用devtools自动将import(data.table)添加到命名空间文件中 通常,如果我的软件包使用data.table我只需手动写入,但我不能使用@export和devtools::document正确创建名称空间文件,因为它要么覆盖我添加的内容,要么根本不更新文件 另外,它说不要手动编辑它 谢谢 示例package/R/function.Rcode #' @export #' @import data.table test_data_table = function(dt) {
devtools
自动将import(data.table)
添加到命名空间
文件中
通常,如果我的软件包使用data.table
我只需手动写入,但我不能使用@export
和devtools::document
正确创建名称空间
文件,因为它要么覆盖我添加的内容,要么根本不更新文件
另外,它说不要手动编辑它
谢谢
示例
package/R/function.R
code
#' @export
#' @import data.table
test_data_table = function(dt) {
dt[, a := 3]
}
呼叫示例
> 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 ":="
>测试数据表
函数(dt){
dt[,a:=3]
}
>测试数据表(dt)
显示回溯
使用调试重新运行
“[.data.frame`(x,i,j)中出错:找不到函数”:
您可能根本不应该使用import(*)
,除非您确实需要从包中导出的每个对象。相反,使用importFrom(pkg,obj1,obj2,…)
只导入您需要的对象
从编写R扩展手册S1.5.1中:
有选择地使用importFrom
而不是import
是一种很好的做法,尤其是当从包含十几个出口的软件包中导入时,推荐使用importFrom
尽管如此,如果您确实需要导入所有内容,请使用
#@import data.table
数据。table
实际上是我将导入所有内容的少数软件包之一。我想问题在于语法。我是否理解我使用importFrom(data.table,data.table.[)
?@AkhilNair方法是[.data.table
,但您无法导入它,因为它没有导出。我怀疑您是否可以有选择地从data.table导入,并且仍然使用data.table本身。您可以有选择地从data.table导入一些函数,但对于创建核心功能的函数,您可能并不了解。@Roland,我认为所有这些都意味着应该像sni一样进行导入我在OP中添加了ppet。如果是这样,我仍然会得到找不到的代码:=
错误。@Roland Oops-对不起,这太愚蠢了。在修复该代码时,我仍然看到一个错误(OP中的澄清)