自定义R

时间:2019-03-06 19:58:30

标签: r custom-function psych

我想在R中的功能psych::polychoric中更改条件。 具体来说,我想在代码的第77行中将变量的不同实现的限制从8增加到10。 我可以通过拨打电话手动提高限额

trace(polychoric, edit=TRUE)

由于该脚本旨在用于我的论文的复制,因此我希望通过避免手动编辑来使处理尽可能平滑。 有没有办法通过区号来编辑功能, 例如通过将代码中的if (nvalues > 8)替换为if (nvalues > 10)到另一个函数?

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

在要更改的功能中找到位置

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 > 10trace(psych::polychoric, edit = T)显示nvalues > 8来进行检查。下次重新加载psych时,将使用原始功能。有点手动破解-但希望能解决这种情况。