Если я использую исходный код, то все работает, но когда я создаю пакет / функцию, это дает мне ошибку. Я что-то пропустил?
тестовый пакет
test <- function () {</p>
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)
}
создать пакет, используя R CMD build Linux
test
|__R
|__test.r
|__DESCRIPTION
|__NAMESPACE
R CMD build test
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
("test")
test ()
Получите ошибку, как показано ниже
Ошибка в [.data.frame
(x, i, j): объект 'cnt' не 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)