我正在尝试测试包中是否存在特定变量或函数。例如,假设我想测试一个名为plot
“graphics”的函数是否存在。
下面测试一个函数是否plot
存在,而不是它来自哪个包:
exists('plot', mode='function')
或者我可以测试包中是否plot
存在一些名为的东西graphics
,但这并不能告诉我它是否是一个函数:
'plot' %in% ls('package:graphics')
有没有一种很好的方法来询问“模式 Z 的包 Y 中是否存在一个名为 X 的对象”?(本质上,我可以限制exists
特定的包吗?)
(是的,我可以将以上两行结合起来,首先测试plot
ingraphics
然后询问 的模式plot
,但是如果我有自己的函数plot
屏蔽graphics::plot
怎么办?那么我可以相信 的输出exists('plot', mode='function')
吗?)
背景:为我的一个包写测试,想测试各种功能是否导出。我正在使用包testthat
,它在我可以看到包的所有内部功能的环境中执行测试,并且被exists('myfunction', mode='function')
返回 true 所刺痛,但我实际上忘记了 export myfunction
。我想测试是否导出了各种功能。