R软件包在Linux上构建-特别考虑DESCRIPTION和NAMESPACE中的data.table



如果我使用源代码,那么一切都正常,但当我创建包/函数时,它会给我一个错误。我遗漏了什么吗?

测试包

测试<-函数(({

library("data.table")
dd <- mtcars
setDT(dd)
dd$cnt <- 1
eval(parse(text=paste0("dd <- unique(dd[,list(cnt, mpg, cyl)])")))
eval(parse(text=paste0("dd1 <- dd[order(mpg, cyl)]")))
print(dd1)

}

在Linux上使用R CMD构建创建包

测试|__R|__test.r|__说明|__NAMESPACE

R CMD构建测试

R CMD安装测试_1.0.tar.gz

描述内容

包:测试标题:测试版本:1.0Authors@R:person("xyz","xyz",电子邮件="xyz@xyz.com",role=c("aut","cre"(说明:测试取决于:R(>=3.6.0(许可证:测试编码:UTF-8LazyData:true进口:data.table

在R中使用函数

库("测试"(

测试((

获得如下错误

[.data.frame(x,i,j(中的错误:对象"cnt"不适用于

没有包的R代码并且它正在工作

library("data.table")
dd <- mtcars
setDT(dd)
dd$cnt <- 1
eval(parse(text=paste0("dd <- unique(dd[,list(cnt, mpg, cyl)])")))
eval(parse(text=paste0("dd1 <- dd[order(mpg, cyl)]")))
print(dd1)

谢谢@Dirk Eddelbuettel。你是对的,它奏效了。我发现这个问题已经在StackOverflow上得到了回答,还有很好的文档。

https://cran.r-project.org/web/packages/data.table/vignettes/datatable-importing.html

在我自己的包中使用data.table包

相关内容

最新更新