(II) : Tryb expression

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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *