Funkcja switch() przyjmuje dowolną liczbę argumentów. Pierwszy argument mówi switch (), który z poniższych argumentów ma zwrócić. Argumenty występujące po pierwszym argumencie to zwracane obiekty. Pierwszy argument musi być numeryczny, logiczny, złożony, znakowy lub NA i musi składać się z pojedynczego elementu. Reszta argumentów może mieć dowolny tryb i wymiar. Przecinki oddzielają argumenty. Jeśli pierwszy argument jest liczbowy, liczba jest zaokrąglana w dół do liczby całkowitej; jeśli jest to logiczne, TRUE jest wymuszane na 1, a FALSE na 0; a jeśli jest złożony, część urojoną jest odrzucana, a część rzeczywista jest traktowana jak numeryczna. Funkcja zwraca argument wskazany przez pierwszy argument. Na przykład, jeśli pierwszy argument to 3, to zwracany jest czwarty argument. To jest:
> switch(3,5,”a”,”b”,6)
[1] “b”
Jeśli pierwszy argument jest większy niż liczba argumentów minus jeden, jest mniejszy niż jeden lub ma wartość NA, to zwracany jest obiekt NULL. Na przykład:
> switch(0,1,2,3)
> mode(switch(0,1,2,3))
[1] “NULL”
Ciąg znaków dla pierwszego elementu powoduje, że funkcja switch () zachowuje się inaczej. Funkcja sprawdza nazwy argumentów występujących po ciągu znaków, aby spróbować znaleźć dopasowanie. Wszystkie poniższe argumenty muszą zostać nazwane z wyjątkiem jednego możliwego elementu bez nazwy. (Argumenty można nazwać na liście, wprowadzając nazwę, po której następuje znak równości, po którym następuje – opcjonalna – wartość.) Jeśli istnieje argument bez nazwy, wówczas ten argument staje się wartością domyślną, jeśli nie ma dopasowania do ciąg znaków. Jeśli nie ma argumentu bez nazwy, wartością domyślną jest obiekt NULL. Na przykład:
> switch(“e”, a=1, b=2, c=3, d=4, e=f.fun(0))
[1] 1.959964
> switch(“e”, a=1, b=2, c=3, d=4, 25)
[1] 25
> switch(“e”, a=1, b=2, c=3, d=4)
> mode(switch(“e”, a=1, b=2, c=3, d=4))
[1] “NULL”
Nienazwany argument może pojawić się w dowolnym miejscu listy oprócz pierwszego argumentu. Jeśli wprowadzono więcej niż jeden nienazwany argument, funkcja switch () zwraca błąd. Dzięki ciągowi znaków dla pierwszego argumentu, kolejnym argumentom nie trzeba przypisywać wartości, a jedynie nazwę. Jeśli ciąg znaków pasuje do nazwy bez wartości, to funkcja switch () kontynuuje wyświetlanie listy argumentów i zwraca wartość następnego argumentu z wartością. Jeśli żaden z kolejnych argumentów nie zawiera wartości, przełącznik zwraca obiekt NULL. Na przykład:
> switch(“b”, a=1,b=2,c=,d=,e=5)
[1] 2
> switch(“b”, a=1, b=, c=3, d=)
[1] 3
> switch(“b”, a=1, b=, c=, d=)
> mode(switch(“b”, a=1, b=, c=, d=))
[1] “NULL”
Zauważ, że pierwszy argument jest ujęty w cudzysłów, podczas gdy nazwy kolejnych argumentów nie. Funkcja switch () może być zagnieżdżona. Więcej informacji na temat funkcji switch () można znaleźć, wpisując? Switch w wierszu polecenia R