在 R 中自定义现有函数
Customize existing function in R
我想在 R 中的函数 psych::polychoric
中更改条件。
具体来说,我想在代码的第 77 行将 a 变量的不同实现的限制从 8 增加到 10。
我可以通过调用
手动增加限制
trace(polychoric, edit=TRUE)
由于脚本是为了我的一篇论文的复制目的,我想通过避免手动编辑来使处理尽可能顺利。
有没有办法通过一段代码来编辑功能,
例如通过在代码中用另一个函数将 if (nvalues > 8)
替换为 if (nvalues > 10)
?
如有任何建议,我们将不胜感激。
在函数中找到您要更改的位置
as.list(body(psych::polychoric))
更改功能
trace(psych::polychoric, quote(nvalues > 10), at=11)
检查您是否更改了想要更改的内容
trace(psych::polychoric, edit=TRUE)
将功能设置回原来的
untrace(psych::polychoric)
-----
似乎 fix
对您来说执行此任务可能更容易
fix(polychoric)
打开一个面板,您可以在其中更改代码 - 更改并点击保存。
这将使该函数成为全局环境的局部函数,您可以通过查看原始函数来检查这一点 trace(polychoric, edit = T)
将显示 nvalues > 10
,而 trace(psych::polychoric, edit = T)
将显示 nvalues > 8
.下次您重新加载 psych
时,您将使用原来的功能。有点手动破解 - 但希望适用于这种情况。
我想在 R 中的函数 psych::polychoric
中更改条件。
具体来说,我想在代码的第 77 行将 a 变量的不同实现的限制从 8 增加到 10。
我可以通过调用
trace(polychoric, edit=TRUE)
由于脚本是为了我的一篇论文的复制目的,我想通过避免手动编辑来使处理尽可能顺利。
有没有办法通过一段代码来编辑功能,
例如通过在代码中用另一个函数将 if (nvalues > 8)
替换为 if (nvalues > 10)
?
如有任何建议,我们将不胜感激。
在函数中找到您要更改的位置
as.list(body(psych::polychoric))
更改功能
trace(psych::polychoric, quote(nvalues > 10), at=11)
检查您是否更改了想要更改的内容
trace(psych::polychoric, edit=TRUE)
将功能设置回原来的
untrace(psych::polychoric)
-----
似乎 fix
对您来说执行此任务可能更容易
fix(polychoric)
打开一个面板,您可以在其中更改代码 - 更改并点击保存。
这将使该函数成为全局环境的局部函数,您可以通过查看原始函数来检查这一点 trace(polychoric, edit = T)
将显示 nvalues > 10
,而 trace(psych::polychoric, edit = T)
将显示 nvalues > 8
.下次您重新加载 psych
时,您将使用原来的功能。有点手动破解 - 但希望适用于这种情况。