Search code examples
rdata.tabledependenciesr-package

Local package dependency to R data.table ":="


I have a local R package and some functions are operating with data.table operations. When I install package, it installs the data.table since it is a dependent. However, I couldn't figure out this part in the package.

This one is working in the function:

dt=data.table::as.data.table(dt)

so it converts dt to a data.table

This one is not working

dt[SuperDummyDate == '',SuperDummyDate := NA]

the package can't find that ":=" is a datatable function. since it is in [], I can't add data.table::..

I tried require(data.table) within the function, but still didn't work.

Thanks in advance!


Solution

  • data.table should be imported in the NAMESPACE file of the package :

    import(data.table)
    

    With Roxygen, you could require this import in the function header, it will be automatically added to NAMESPACE:

    #' Your function title & description
    #'
    #' @parameter data
    #' @import data.table
    #'
    DTfunction <- function(data) {
      data[,newcol:=.SD[,1]]
    }
    

    Test after loading the function:

    DTfunction(as.data.table(mtcars[,1:2]))
    
          mpg   cyl newcol
        <num> <num>  <num>
     1:  21.0     6   21.0
     2:  21.0     6   21.0
     3:  22.8     4   22.8
     4:  21.4     6   21.4
    ...