R data.table ': =' funciona en llamada directa, pero falla la misma función en un paquete

Usando el paquete data.table de R,

Esto funciona:

instruction = "a = data.table(name=1:3, value=1:3, blah=1:3); a[,c('value', 'blah'):=NULL]"
eval(parse(text=instruction))
#   name
#1:    1
#2:    2
#3:    3

Esto funciona:

myFunc = function(instruction) {
eval(parse(text=instruction))
}
myFunc(instruction)
#   name
#1:    1
#2:    2
#3:    3

Ahora, coloque esta función en un paquete, cárguela e intente llamarla. Esto no funciona:

myFuncInPackage(instruction)
#Error in `:=`(c("value", "blah"), NULL) : 
#  Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":=").

¿Por qué?

EDITAR: @Roland señala que agregar data.table en el paqueteDepends campo lo hace funcionar. Sin embargo, no creo que esta sea una gran solución porque el paquete realmente no depende, requiere o usa data.table. Solo quiero poder usar data.table con el paquete.

Además, todo lo demás con data.table funciona bien en la función, solo que no:= operador.

Entonces, supongo que una pregunta de seguimiento podría ser: ¿debo agregar data.table a las dependencias de cada paquete que escriba, para que data.tables funcione como se espera dentro de las funciones de ese paquete? Esto no parece correcto ... ¿cuál es la forma correcta de abordar esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta