【问题标题】:Convert R function to string将R函数转换为字符串
【发布时间】:2017-02-03 14:02:44
【问题描述】:

我想把函数对象转成字符串

fn=function(x)
{
  return(2*x)
}

my_convert_function(fn)

# would give 
#"fn=function(x)
#{
#  return(2*x)
#}"

有可能吗?谢谢你的想法

【问题讨论】:

  • capture.output(fn)怎么样
  • 这很好用,谢谢

标签: r string function


【解决方案1】:
deparse(fn)
[1] "function (x) "     "{"                 "    return(2 * x)" "}"

【讨论】:

  • deparse 的绝佳选择
  • @akrun 对paste(deparse(fn), collapse = "")capture.output(fn) 相比有何优势?
  • @JasonAizkalns 我不确定有什么优势。但是,capture.output 函数似乎有很多 if/else 检查
【解决方案2】:

从 R 4.0 开始,还有deparse1()。这个版本的deparse() 直接返回一个字符串(如果这是你要找的):

fn=function(x)
{
  return(2*x)
}
  
deparse1(fn)

#> [1] "function (x)  {     return(2 * x) }"

【讨论】:

    最近更新 更多