Programowanie i analiza danych w R 2010/2011 Instrukcja
Transkrypt
Programowanie i analiza danych w R 2010/2011 Instrukcja
Programowanie i analiza danych
w R 2010/2011
Sterowanie kodem w R
Jarosลaw Wierzbicki
๐๐๐๐๐ ๐(๐ฅ >= 0, "๐๐๐ข๐ ", "๐๐๐๐ข๐ ")
Funkcja switch
Skลadnia:
๐ ๐ค๐๐ก๐๐(๐, ๐ค๐๐1 = ๐๐๐ ๐ก๐1, ๐ค๐๐2 = ๐๐๐ ๐ก๐2, โฆ )
Instrukcja warunkowa ifโฆ elseโฆ
Skลadnia wyglฤ
da nastฤpujฤ
co:
๐๐ (๐ค๐๐_๐๐๐) ๐๐๐ ๐ก๐๐ข๐๐๐๐_๐ ๐๐๐ ๐ ๐๐๐ ๐ก๐๐ข๐๐๐๐_๐
Fragment kodu zaczynajฤ
cy siฤ od else jest
opcjonalny. instrukcja_a jak i instrukcja_b mogฤ
byฤ
pojedynczymi instrukcjami jak i blokami instrukcji. Jeลli
warunek logiczny war_log jest prawdziwy to zostanie
wykonana instrukcja_a jeลli war_log jest faลszywy to
zostanie wykonana instrukcja_b.
Przykลad:
๐ฅ < โ2
๐๐(๐ฅ >= 0){
๐ฆ = ๐ ๐๐๐ก(๐ฅ)
๐๐๐ก("๐๐๐๐๐ค๐๐๐ ๐ก๐๐ ๐๐ค๐๐๐๐๐ก๐๐ค๐ฆ: ", ๐ฆ)
} ๐๐๐ ๐ {
๐๐๐ก("Blad! Liczba ujemna")
}
Funkcja ifelse
ifelse jest uogólnieniem wyลผej wymienionej instrukcji
warunkowej. Skลadnia przedstawia siฤ nastฤpujฤ
co:
๐๐๐๐๐ ๐(๐ค๐๐_๐๐๐, ๐๐๐ ๐ก๐๐ข๐๐๐๐_๐, ๐๐๐ ๐ก๐๐ข๐๐๐๐_๐)
gdzie war_log jest wektorem wartoลci logicznych.
Wynikiem tej funkcji jest wartoลฤ lub wektor, który na
odpowiednich wspóลrzฤdnych przyjmuje wartoลci
opisane przez instrukcja_a (instrukcja_b)
gdy
odpowiedni war_log jest prawdziwy (faลszywy).
Przykลad:
๐ฅ < โ๐(โ5,3, โ2,4)
๐๐๐๐๐ ๐(๐ฅ >= 0, ๐ฅ^0.5, ๐๐๐)
Pierwszy argument funkcji switch jest typu
znakowego lub typu factor. W zaleลผnoลci od wartoลci k
zostanie wykonana odpowiednia instrukcja. Jeลli wartoลฤ
k nie odpowiada ลผadnej z wymienionych wartoลci to
zostanie wykonana nienazwana. Jeลผeli odpowiednia
instrukcja jest โpustaโ to zostanie wykonana instrukcja
dla kolejnej wartoลci.
Przykลad:
๐ < โ"1" # ๐ < โ"2"
๐ ๐ค๐๐ก๐๐(๐, "1" = ๐๐๐ก("๐๐๐๐๐\๐"),
"2"=, "3"=cat(๐๐ค๐ ๐๐ข๐ ๐ก๐๐ง๐ฆ\๐"),
๐๐๐ก("? ? ?\๐"))
Pฤtla for
Skลadnia:
๐๐๐(๐ ๐๐ ๐ค๐๐๐ก) ๐๐๐ ๐ก๐๐ข๐๐๐๐
gdzie instrukcja moลผe byฤ pojedynczฤ
instrukcjฤ
lub
blokiem instrukcji. Elementy wektora wekt mogฤ
byฤ
dowolnego typu . Pฤtla wykona siฤ tyle razy ile jest
wspóลrzฤdnych wektora wekt. Za kaลผdym razem zmienna
i przyjmuje wartoลci kolejnych elementów wektora wekt.
Tradycyjnie sฤ
to nastฤpujฤ
ce po sobie liczby naturalne
ale tak nie musi byฤ.
Przykลad:
๐ค < โ๐("๐๐๐๐๐", "๐๐ค๐", "๐ก๐๐ง๐ฆ")
๐๐๐(๐ ๐๐ ๐ค){
๐๐๐ก("๐ค๐๐๐ก๐๐ ๐ ๐ง๐๐๐๐๐๐๐ ๐: ", ๐, "\๐")}
Pฤtla while
Pฤtla while jest uลผywana w przypadkach, w których
nie znamy iloลci powtórzeล danej instrukcji. Skลadnia
wyglฤ
da nastฤpujฤ
co:
๐ค๐๐๐๐(๐ค๐๐_๐๐๐) ๐๐๐ ๐ก๐๐ข๐๐๐๐
Jeลผeli mamy wiฤcej czynnoลci do wykonania to
zamiast jednej instrukcji wstawiamy blok instrukcji. Pฤtla
bฤdzie siฤ wykonywaลa dopóki warunek logiczny
war_log jest prawdziwy.
Pฤtla repeat
Skลadnia:
๐๐๐๐๐๐ก ๐๐๐ ๐ก๐๐ข๐๐๐๐
Pฤtla repeat bฤdzie siฤ wykonywaฤ dopóki nie nastฤ
pi
komenda
break,
która
powoduje
zatrzymanie
wykonywania pฤtli. Instrukcja ta dziaลa równieลผ w
przypadku pฤtli for i while. Instrukcja next powoduje
zaniechanie wykonywanie danej iteracji.
Funkcje
Schemat deklaracji funkcji:
๐๐ข๐๐๐ก๐๐๐(๐๐๐) ๐๐๐ ๐ก๐๐ข๐๐๐๐
gdzie instrukcja to pojedyncza instrukcja lub ich blok.
Funkcje sฤ
traktowane jak obiekty wiฤc moลผliwe jest ich
przypisanie do zmiennej. arg to sฤ
argumenty
(oddzielone przecinkami) przekazywane do funkcji (lista
argumentów moลผe byฤ pusta). Moลผna równieลผ okreลliฤ
domyลlne wartoลci dla kolejnych argumentów wtedy
przy wywoลaniu funkcji gdy dany argument nie jest
podany wykorzystana bฤdzie jego domyลlna wartoลฤ.
Wynik dziaลania funkcji to wartoลฤ, która jest
wyznaczana w ostatniej linii ciaลa funkcji. Jeลli chcemy
mieฤ innฤ
wartoลฤ wynikowฤ
uลผywamy instrukcji
return(w). Powoduje ona przerwanie dziaลania funkcji i
przekazanie jako wynik argument w.
Przykลad:
๐๐๐๐๐ค๐๐๐ ๐ก๐๐ = ๐๐ข๐๐๐ก๐๐๐(๐ฅ, ๐ = 2){๐ < โ๐ฅ^(1/๐)}
๐๐๐๐๐ก(๐๐๐๐๐ค๐๐๐ ๐ก๐๐ 9 )