【问题标题】:how to fix/edit an invisible function in R interaction session? [duplicate]如何修复/编辑 R 交互会话中的不可见功能? [复制]
【发布时间】:2014-04-29 17:11:52
【问题描述】:

我想临时修改函数lattice:::print.trellis。我可以使用edit 在编辑器中打开功能代码,但退出编辑器(不是 R 会话)后更改将被丢弃。我也试过fix,但遇到以下错误:

> fix(lattice:::print.trellis)
Error in fix(lattice:::print.trellis) : 'fix' requires a name
>

谁能解释这个错误?有没有办法方便临时修改这个隐形功能(只在当前会话有效)?

顺便说一句,lattice 库已经加载。

【问题讨论】:

  • 我听说您需要重新创建包以保留您的更改。我需要做类似的事情,但我并不热衷于这样一个涉及如此微小的变化的过程。
  • @flodel 消除了问题中的困惑。
  • 我强烈建议您将源代码复制到 print.trellis 并创建一个 myprint.trellis 。修改包函数总有一天会在你意想不到的时候搞砸(你会忘记 mod 的存在)。

标签: r


【解决方案1】:

有函数assignInNamespacefixInNamespace 允许按照你说的做。 trace 函数还有 edit 参数,它可以让您在适当的位置编辑函数。使用trace 的优点是可以轻松地untrace 并删除您所做的更改。

【讨论】:

    猜你喜欢
    • 2018-05-25
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    相关资源
    最近更新 更多