簡體   English   中英

在 Linux 上構建的 R 包 - 對描述和命名空間中的 data.table 的特殊考慮

[英]R Package Build on Linux - special consideration for data.table in DESCRIPTION and NAMESPACE

如果我使用源代碼,那么一切正常,但是當我創建包/函數時,它會給我一個錯誤。 我錯過了什么嗎?

測試包

測試 <- 函數(){

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 build 創建一個包

test 
   |__R
      |__test.r
   |__DESCRIPTION
   |__NAMESPACE

R CMD 構建測試

R CMD INSTALL test_1.0.tar.gz

說明內容

Package: test
Title: test
Version: 1.0
Authors@R: person("xyz", "xyz", email = "xyz@xyz.com",
                  role = c("aut", "cre"))
Description: test
Depends: R (>= 3.6.0)
License: test
Encoding: UTF-8
LazyData: true
Imports:
    data.table

在 R 中使用函數

圖書館(“測試”)

測試()

得到如下錯誤

[.data.frame (x, i, j) 中的錯誤:對象 'cnt' not fo

沒有包的 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 包

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM