[R] setRefClass in package
Jeremie Juste
jerem|eju@te @end|ng |rom gm@||@com
Wed Mar 24 14:06:29 CET 2021
Hello,
I was wondering how to call a function outside a setRefClass but inside
the package without export it. Let me explain by means of an example.
- in the file test-package/R/test.R
##' some description
##'
##' some details
##' @title test
##' @return sideeffect
##' @author Jeremie Juste
##' @export test
##' @import data.table
test <- setRefClass("test",
list(dt="data.table"))
test$methods(
initialize = function(x){
dt <<- remove_if_all_na(x[,abc:=1])
}
)
##' remove rows for which all values are NA
##'
##' @title remove_if_all_NA
##' @param dt
##' @return dt
##' @author Jeremie Juste
remove_if_all_NA <- function(dt) {
cn <- colnames(dt)
dt[!dt[NA],on=cn]
}
Here when I build and install the package test-package, if I don't export
remove_if_all_NA
##' remove rows for which all values are NA
##'
##' @title remove_if_all_NA
##' @param dt
##' @return dt
##' @author Jeremie Juste
##' @export
remove_if_all_NA <- function(dt) {
cn <- colnames(dt)
dt[!dt[NA],on=cn]
}
The package cannot use it.
library(test-package)
library(data.table)
> aa <- data.table(a=1:10,b=letters[1:10])
> b <- test(aa)
Error in remove_if_all_na(x[, `:=`(abc, 1)]) :
could not find function "remove_if_all_na"
Do you have any recommendations? The official documentation for
setRefClass is a bit thin for me but I wanted to use a tools that is going to stay. Any tip is
welcome.
Best regards,
Jeremie
More information about the R-help
mailing list