2016-09-14 22 views
5

Próbuję zrozumieć, co to jest obiekt call w R i przymusić go do postaci. Jednak moje dotychczasowe wysiłki były daremne.wywołanie funkcji w łańcuchu znaków

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)" 

Mam również poszukuje dla funkcji, która drukuje wywołanie funkcji (coś jak print.call). Ale nie mogłem tego znaleźć.

Czy ktoś tutaj wie, w jaki sposób drukowane są obiekty wywołania?

+1

Nie może być prostszy sposób, ale 'myFun <- function (a = 1) {as.character (as.expression (sys.call()))} ' – alistaire

+0

' as.expression' wykonuje zadanie, dziękuję @alistaire – RockScience

Odpowiedz

5

Możemy użyć match.call() z deparse

myFun <- function(a=1) { 
      deparse(match.call())  
    } 

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

Albo zastąpić match.call() z sys.call() w funkcji