r - as.character 在函数中的使用

标签 r function

我偶然发现了一个问题:

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/

相关文章:

javascript - 在 initComponent Ext JS4 中声明函数

ruby - 我应该在 def 中指定 &block 参数吗?

r - 为什么无法访问我的数据框中的列

r - dplyr 过滤器变量设置为不过滤任何内容 [r]

r - 使用 Shiny 模拟实时数据可视化

c - 使用 char 指针读取 int 值并返回它

r - 在 RUnit 或 testthat 中自动生成测试用例

r - 分组函数(tapply、by、aggregate)和 *apply 系列

c - 我的程序崩溃了,我不明白为什么它甚至没有到达第一个 printf

php - 我需要将 "functions"与 "for loop"与 php 结合起来