grepl не работает с devtools :: load_all () - PullRequest
0 голосов
/ 30 января 2019

У меня есть следующая функция, которую я упаковал в пакет:

str_grepl <- function(data) {
  data <- as.data.table(data)
  data <- data[!grepl("^set", Species)]
  return(data)
}

Когда я запускаю эту функцию и применяю функцию к моим данным, она отлично работает.

library(data.table)

str_grepl(iris)
#>      Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
#>   1:          7.0         3.2          4.7         1.4 versicolor
#>   2:          6.4         3.2          4.5         1.5 versicolor
#>   3:          6.9         3.1          4.9         1.5 versicolor
#>   4:          5.5         2.3          4.0         1.3 versicolor
#>   5:          6.5         2.8          4.6         1.5 versicolor
#>   6:          5.7         2.8          4.5         1.3 versicolor

Однако, когда я создаю пакет с помощью RStudio / devtools, сохраняю эту функцию и загружаю ее с load_all(), функция не работает:

> str_grepl(iris)
 Error in grepl("^set", Species) : object 'Species' not found 

Самое смешное, что это работает, если я устанавливаю пакети загрузите его.

devtools::install()
str_grepl(iris)
#>      Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
#>   1:          7.0         3.2          4.7         1.4 versicolor
#>   2:          6.4         3.2          4.5         1.5 versicolor
#>   3:          6.9         3.1          4.9         1.5 versicolor
#>   4:          5.5         2.3          4.0         1.3 versicolor
#>   5:          6.5         2.8          4.6         1.5 versicolor
#>   6:          5.7         2.8          4.5         1.3 versicolor

Есть идеи, почему это так?

Я поместил пример пакета на Github: https://github.com/filipwastberg/greplpackage

1 Ответ

0 голосов
/ 31 января 2019

Проблемы здесь, как предложил @akrun, были в файле описания.После добавления:

Imports: 
    data.table

Проблема исчезла:

  library(data.table)
  devtools::load_all()
  iris <- iris

str_grepl(iris)
#>      Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
#>   1:          7.0         3.2          4.7         1.4 versicolor
#>   2:          6.4         3.2          4.5         1.5 versicolor
#>   3:          6.9         3.1          4.9         1.5 versicolor
#>   4:          5.5         2.3          4.0         1.3 versicolor
#>   5:          6.5         2.8          4.6         1.5 versicolor
#>   6:          5.7         2.8          4.5         1.3 versicolor
...