将函数调用强制转换为字符串

时间:2016-09-14 05:16:28

标签: r callstack coercion

我试图了解R中的call对象是什么,并将其强制转换为字符。然而到目前为止,我的努力一直是徒劳的。

myFun=function(a=1) {   x=sys.call()   return(as.character(x)) }

x=myFun(a=2) # here I would like to get the string "myFun(a = 2)"

我一直在寻找打印函数调用的函数(类似print.call)。但我找不到它。

这里有人知道如何打印调用对象吗?

1 个答案:

答案 0 :(得分:5)

我们可以将match.call()deparse

一起使用
myFun <- function(a=1) { 
            deparse(match.call())       
  }

myFun(a=2)
#[1] "myFun(a = 2)"

或者在功能

中将match.call()替换为sys.call()