是否可以为R类重新定义?
函数(帮助函数)?
我尝试过定义
`?.myclass` = function(x) "foo"
help.myclass = function(x) "foo"
但它并没有改变?
的行为。
f = function() "bar"
class(f) = "myclass"
?f # doesn't work
help(f) # doesn't work
help.myclass(f) #works
我正在编写一个使用PythonInR
导入一些Python函数的包。我希望我可以在导入的Python函数中添加一个类,这样我就可以在Python中创建一个调用help(fun)
的自定义帮助函数并打印结果。我可以编写一个python.help
函数来执行此操作,但我希望能够提供更加无缝的解决方案。
答案 0 :(得分:3)
您可以尝试以下内容:
library(PythonInR)
`?` <- function(e1, e2) UseMethod("?")
`?.default` <- utils::`?`
`?.pyFunction` <- function(e1, e2) {
topicExpr <- substitute(e1)
pyHelp(deparse(topicExpr))
}
pyImport("getcwd", from="os", as="os")
? os.getcwd
此外,您需要在命名空间文件中使用以下内容。
export("?")
S3method("?", "default")
S3method("?", "pyFunction")
但是要使这个函数起作用,重要的是你的函数在Python和R中具有相同的名称。
我相信为你的R函数创建.Rd文件会更好。