Obiekty trybu call są nieocenionymi funkcjami z argumentami, jeśli funkcja przyjmuje argumenty. Te same trzy funkcje, które istnieją dla trybów atomowych, istnieją dla trybu wywołania: call(), as.call() i is.call().
Funkcja call() tworzy obiekt wywołania trybu. Pierwszy argument call () to nazwa funkcji w cudzysłowie. Pozostałe argumenty do wywołania to argumenty funkcji. Niektóre przykłady obejmują:
> a.call = call(“lm”, y~x)
> a.call
lm(y ~ x)
> b.call = call(“ls”)
> b.call
ls()
> c.call = call(“ls”, pattern=”abc”)
> c.call
ls(pattern = “abc”)
Zauważ, że obiekt wywołania trybu może zostać oceniony za pomocą funkcji eval(). Jeśli wszystkie zmienne w wywołaniu istnieją w obszarze roboczym, eval() oceni funkcję; w przeciwnym razie eval() spowoduje błąd. Na przykład:
> x
[1] 1 2 3
> y
[1] 2 3 4
> eval(a.call)
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
1 1
> a.call = call(“lm”, z~x)
>
> z
Error: object ‘z’ not found
>
> eval(a.call)
Błąd w eval (expr, envir, encos): nie znaleziono obiektu „z”. Funkcja as.call () próbuje przekonać argument do obiektu wywołania trybu. Jeśli argumentem jest lista, następuje konwersja; w przeciwnym razie zwracany jest błąd. Jeśli jednak lista nie zawiera nazwy funkcji, po której następują argumenty tej funkcji, obiekt nie może zostać oceniony. Funkcja is.call () testuje argument i zwraca PRAWDA, jeśli argumentem jest wywołanie trybu, w przeciwnym wypadku FALSE. Więcej informacji na temat wywołania trybu można znaleźć, wprowadzając ?call w wierszu R.