grepl无法使用devtools :: load_all()

时间:2019-01-30 14:50:32

标签: r string-matching devtools grepl

我在包装中具有以下包装包装的功能:

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 :(得分:0)

这里的问题是@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