У меня есть следующая функция, которую я упаковал в пакет:
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