I.iii\mim’ wprowadzenie do R korzystając z funkcji invisible(base). Działanie tej funkcji polega na tymczasowemu zapobiegnięciu wyświetlania jej argumentu w sytuacji, gdy nie będzie on do niczego przypisany. Prześledźmy poniższy przykład. .
> ż obie funkcje są tożsamościami
> II <- function(x) x
> 12 <- functlon(x) invisible(x)
> łt wynik funkcji przypisujemy do zmiennej, w tym przypadku funkcja
inuisibleO nie ma żadnego efektu, dla obu funkcji obserwujemy to samo zachowanie
> a <- 11(1)
> a <- 12(1)
> tt wyniku funkcji nie przypisujemy do zmiennej, w tym przypadku funkcja
inuisibleO powoduje, ze wynik 120 nie jest wyświetlany
Cl] 1
Funkcję cat() możemy również wykorzystać, aby zapisywać obiekty do pliku (zamiast wypisywać je na konsoli). Aby to zrobić należy argumentem file wskazać ścieżkę do pliku, do którego zapisane mają być obiekty. Więcej o zapisywaniu do plików przeczytać można w podrozdziale 1.6.5.1.
Do operacji na napisach w celu ich odpowiedniego wyświetlenia wykorzystuje się również funkcje paste(base) i format(base). Funkcja pasteO służy do łączenia wektorów napisów, jej dwa argumenty sep=" " i collapse=NULL określają sposób w jaki sklejane są argumenty tej funkcji. Poniżej kilka przykładów.
> # Funkcja poste O skleja argumenty w jeden łańcuch znaków
> pasteCAla", "ma"; 5)
[1] "Ala ma 5“
> # parametrem sep, możemy określać, co ma separować kolejne argumenty
> pasteCAla", "ma", 5, sep="; ")
' [1] "Ala; ma; 5" ; '
> łt jeżeli argumenty mają różną długość, to zadziała recycling rule
(omówimy ją później)
> pasteC Jeszcze" , 3:0, ”...*)
[1] "Jeszcze 3 ..." "Jeszcze 2 ..." "Jeszcze 1 ..." "Jeszcze 0 ..."
> # wynikiem sklejenia dwóch wektorów będzie wektor
> paste(l:5, lettersCl:5], sep=" * ")
[1] "1 » a" "2 * b" "3 * c" "4 * d" "5 * e“
> U chyba, że określimy argument collapse, co spowoduje, te elementy tego
wektora zostaną połączone
> paste(l:5, letters Cl :5] , sep-",“, collapse-"; ")
Cl] "l,aj 2,b; 3,c; 4,d; 5,e"
Startujemy
Funkcja formatO służy do konwrm|i . <>1 >i< Uiu im typ znakowy zgodnie
z ustalonym formatowaniem. Przy kouwi-mjl ...../nu określić, ile pól po kropce rna
być wypisywanych, czy tekst ma być JiiNtownny do lewej czy do prawej, czy ma być wykorzystana notacja naukowa (z mifllxcin *1 •) lip I'onlżej kilka przykładów użycia tej funkcji.
> format(11/3)
[lj "3.666667"
.’> fi wyświetlmy tą liczbę w notacji naukowej y> format(11/3, sci = TRUE)
' [1] "3.666667e+00“
■ ■’> fi wyświetlmy tę liczbę z maksymalnie dwoma cyframi znaczącymi
> format(11/3, digita = 2)
Ul “3.7"
> fi wyświetlmy te liczby z dwoma miejscami po kropce dziesiętnej format(o(12,21j/3, nsmall = 2)
.. (lj "4.00" "7.00"
> format(c(12,2l)/3, digits = 2, nsmall - 1)
(lj "4.0" "7.0"
Funkcji do formatowania wyników jest znacznie więcej, np. bardzo przydatna jest funkcja sprintf (base), która ma podobny sposób formatowania do funkcji o tej samej nazwie w języku C. Informacji o innych funkcjach do formatowania można szukać np. w plikach pomocy do funkcji toString(base) i encodeString(base). Przedstaw wimy tutaj jeszcze tylko jeden przykład, dotyczący funkcji formatFix(cwhstring). Konwertuje ona wektor liczb (pierwszy argument) na napisy o formacie określonym przez pozostałe argumenty.
> require(cwbstririg)
> fi argument after określa liczbę miejsc po kropce a before przed kropką,
w wynikowym wektorze wszystkie napisy mają taką samą długość
> formatFix(e(pi, exp(l), 1, 1/pi),after=3, before=3)
[1] " 3.142" " 2.718" " 1.000" " 0.318"
y j ^ Funkcja reąuire(base) ładuje bibliotekę, podobnie jak funkcja
■'./Ś___ library(base). Różnica pojawia się w sytuacji, gdy danej biblioteki
—\ /■' nie ma lub są z nią problemy. Domyślnie funkcja libraryO sygnalizu-S je błąd, co przerywa wykonywanie podprogramu, podczas gdy funkcja require() sygnalizuje ostrzeżenie, ale pozwala na kontynuację wykonywania podprogramu. Wynikiem funkcji require() w sytuacji, gdy żądana biblioteka nie jest dostępna jest wartość FALSE. Używając tej funkcji, programista może zaplanować awaryjne rozwiązanie, na wypadek braku danego pakietu.
Oczywiście, próba wywołania funkcji z pakietu, który nie został załadowany, zakończy się błędem.