代码之家  ›  专栏  ›  技术社区  ›  Etienne Racine

将对象添加到包命名空间

  •  32
  • Etienne Racine  · 技术社区  · 16 年前

    我想将一个函数推送到包名称空间中,这样它就可以访问该包的内部对象(以stats包为例)。我试过用

    myfun <- function(x) print(x)
    env = loadNamespace("stats")
    assign("myfun", myfun , env)
    

    但它是锁着的。所以我试着打开我的东西

    unlockBinding("myfun", env)
    

    有什么帮助吗?

    3 回复  |  直到 11 年前
        1
  •  38
  •   Thomas user3246149    12 年前

    environment(myfun) <- asNamespace('stats')
    
        2
  •  19
  •   Collin    16 年前

    为什么不把新功能的环境设置到正确的位置呢?

    myfun <- function(x) print(x)
    environment(myfun) <- as.environment("package:stats")
    
        3
  •  6
  •   Richie Cotton Joris Meys    16 年前

    ::: . 比如说, as.roman 和 utils:::.roman2numeric utils::.roman2numeric

    你可能还想看看 dont.lockBindings 在 mvbutils

    推荐文章