Tryb expression jest podobny do trybu listy, ale głównie dla obiektów trybów takich jak klasa lub nazwa. Obiekty wyrażenia trybu mogą być podzestawione jak listy i nie są oceniane podczas tworzenia. Tryb wyrażania wykorzystuje trzy funkcje używane przez tryby atomowe: expression(), as.expression() i is.expression(). Funkcja expression() tworzy listę obiektów wprowadzonych do funkcji. Obiekty są oddzielone przecinkami i mogą być w dowolnym trybie. Funkcji eval() można użyć do oceny wyrażenia. Tylko ostatni obiekt w wyrażeniu jest oceniany w ramach eval(). Jeśli ostatni argument składa się z funkcji prymitywnych, eval () zwróci wynik, natomiast jeśli funkcja lub wyrażenie nie jest prymitywne, eval() zwróci wyrażenie. Druga funkcja eval() jest następnie konieczna do oceny funkcji lub wyrażenia. Przykłady:
> a.exp = expression(sin(1:5/180*pi))
> a.exp
expression(sin(1:5/180 * pi))
> eval(a.exp)
[1] 0.01745241 0.03489950 0.05233596 0.06975647 0.08715574
> a.exp = expression(sin(1:5/180*pi),a.call)
> a.exp
expression(sin(1:5/180 * pi), a.call)
> eval(a.exp)
lm(y ~ x)
> eval(eval(a.exp))
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
1 1
> a.exp = expression(a.call,sin(1:5/180*pi))
> eval(a.exp)
[1] 0.01745241 0.03489950 0.05233596 0.06975647 0.08715574
Obiekt trybu nazw da błąd, jeśli zostanie umieszczony jako ostatni argument w analizowanym wyrażeniu. Funkcja as.expression () próbuje zmusić argument do wyrażenia trybu. Tryby NULL, wywołanie, nazwa i pairlist są wymuszane na wyrażenie jednowymiarowe. Tryby atomowe inne niż NULL są wymuszane elementarnie. Listy są wymuszane bez zmian oprócz trybu. Inne tryby obiektów będą dawały błąd, jeśli nastąpi próba przymusu.
Funkcja is.expression () testuje argument i zwraca PRAWDA, jeśli argument jest wyrażeniem trybu, a FALSE w przeciwnym razie. Więcej informacji na temat trybu wyrażania można znaleźć, wprowadzając ?expression po znaku zachęty R.
Tryb S4
Tryb S4 identyfikuje obiekty, które są używane w nowej wersji R R S4, która używa zupełnie innej składni. Funkcja isS4 () zwraca PRAWDA, jeśli obiekt jest w trybie S4, w przeciwnym razie FALSE. Funkcja mode () zwraca S4, jeśli argumentem jest tryb S4. Więcej informacji można znaleźć, wprowadzając ?S4 po znaku zachęty R.