从"package :: function"形式的字符串中获取函数

zku*_*rtz 4 r

已经讨论过如何从字符串中获取变量.实际上,get比如data.table功能:get("data.table")返回data.table.然而,

> get("data.table::data.table")
Error in get("data.table::data.table") : 
  object 'data.table::data.table' not found
Run Code Online (Sandbox Code Playgroud)

有没有办法保留对包名的引用?即,我不想简单地对"::"进行拆分并得到字符串的后半部分.

Ric*_*ven 6

您可以使用envir参数从命名空间中获取函数.

get("data.table", envir = getNamespace("data.table"))
Run Code Online (Sandbox Code Playgroud)

或者更简单地用@joran注释,getFromNamespace()可以使用.

getFromNamespace("data.table", "data.table")
Run Code Online (Sandbox Code Playgroud)

  • 或者``getFromNamespace`我想. (4认同)