已经讨论过如何从字符串中获取变量.实际上,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)
有没有办法保留对包名的引用?即,我不想简单地对"::"进行拆分并得到字符串的后半部分.
您可以使用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)