我偶然发现了一个问题:
temp.fun <- function() {}
as.character(temp.fun)
产生错误。我明白为什么不可能将函数“转换”为字符。
问题是,要向函数添加哪些属性,以便方法 as.character
返回我自己定义的字符串?
非常感谢!
最佳答案
deparse
可以帮助:
> deparse( temp.fun )
[1] "function () " "{" "}"
进一步了解您的评论的详细信息,您可以做的是创建一个派生 function
的类,并传递它而不是函数。
setClass( "myFunction", contains = "function" )
setMethod( "as.character", "myFunction", function(x, ...){
deparse( unclass( x ) )
} )
这样,当您将函数传递给第三方包时,您将传递一个 myFunction
:
f <- new( "myFunction", function(){} )
as.character(f)
# [1] "function () " "{" "}"
关于r - as.character 在函数中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517892/