Piotr Staszkiewicz

Wyrażenia

1.1 Wpisz cokolwiek w oknie dialogowym, a R obliczy to i wypisze odpowiedź. Spróbujmy trochę prostej matematyki. Wpisz poniższe polecenie.

1 + 1 
## [1] 2

[1] 2 Oto Twój wynik, 2. Jest on wypisany na konsoli zaraz po Twoim wpisie.

1.1 Wpisz ciąg “Arr, matey!”. (Nie zapomnij o cudzysłowie!).

"Arr, matey!"
## [1] "Arr, matey!"

Teraz spróbuj pomnożyć 6 razy 7 (* jest operatorem mnożenia).

6 * 7
## [1] 42

Wartości logiczne

1.2 Niektóre wyrażenia zwracają “wartość logiczną”: TRUE lub FALSE. (Wiele języków programowania określa je jako wartości “boolean”.) Spróbujmy wpisać wyrażenie, które daje nam wartość logiczną:

3 < 4
## [1] TRUE

I inną wartość logiczną (zauważ, że potrzebujesz znaku podwójnej równości, aby sprawdzić, czy dwie wartości są równe - znak pojedynczej równości nie zadziała):

2 + 2 == 5
## [1] FALSE

T i F są skrótami od TRUE i FALSE. Spróbuj tego:

T == TRUE
## [1] TRUE

Zmienne

1.3 Podobnie jak w innych językach programowania, możesz przechowywać wartości w zmiennej, aby mieć do nich dostęp później. Wpisz x <- 42, aby zapisać wartość w x.

x <- 42

x może być teraz używane w wyrażeniach w miejsce oryginalnego wyniku. Spróbuj podzielić x przez 2 (/ jest operatorem dzielenia).

x / 2
## [1] 21

Możesz ponownie przypisać dowolną wartość do zmiennej w dowolnym momencie. Spróbuj przypisać “Arr, matey!” do x.

x <- "Arr, matey!"

Możesz wydrukować wartość zmiennej w dowolnym momencie, po prostu wpisując jej nazwę w konsoli. Spróbuj wypisać aktualną wartość x.

x
## [1] "Arr, matey!"

Teraz spróbuj przypisać wartość logiczną TRUE do x.

x <- TRUE

Funkcje

1.4 Funkcję wywołujemy wpisując jej nazwę, a następnie jeden lub więcej argumentów w nawiasie. Spróbujmy użyć funkcji suma, aby zsumować kilka liczb. Enter:

sum(1, 3, 5)
## [1] 9

Niektóre argumenty mają nazwy. Na przykład, aby powtórzyć wartość 3 razy, wywołasz funkcję rep i podasz jej argument times:

rep("Yo ho!", times = 3)
## [1] "Yo ho!" "Yo ho!" "Yo ho!"

Spróbuj wywołać funkcję sqrt, aby uzyskać pierwiastek kwadratowy z 16.

sqrt(16)
## [1] 4

Pomoc

help(nazwafunkcji) wyświetla pomoc dla podanej funkcji. Spróbuj wyświetlić pomoc dla funkcji suma:

help(sum)
## starting httpd help server ... done

suma pakiet:base Dokumentacja R

Suma elementów wektora

Opis:

 'sum' zwraca sumę wszystkich wartości występujących w jej argumentach.

Użycie:

 sum(..., na.rm = FALSE)

… (Nie martw się o ten opcjonalny argument na.rm, zajmiemy się tym później). example(nazwafunkcji) wyświetla przykłady użycia podanej funkcji. Spróbuj wyświetlić przykłady dla funkcji min:

example(min)
## 
## min> require(stats); require(graphics)
## 
## min>  min(5:1, pi) #-> one number
## [1] 1
## 
## min> pmin(5:1, pi) #->  5  numbers
## [1] 3.141593 3.141593 3.000000 2.000000 1.000000
## 
## min> x <- sort(rnorm(100));  cH <- 1.35
## 
## min> pmin(cH, quantile(x)) # no names
## [1] -2.41466393 -0.77958503  0.03759333  0.52216973  1.35000000
## 
## min> pmin(quantile(x), cH) # has names
##          0%         25%         50%         75%        100% 
## -2.41466393 -0.77958503  0.03759333  0.52216973  1.35000000 
## 
## min> plot(x, pmin(cH, pmax(-cH, x)), type = "b", main =  "Huber's function")

## 
## min> cut01 <- function(x) pmax(pmin(x, 1), 0)
## 
## min> curve(      x^2 - 1/4, -1.4, 1.5, col = 2)

## 
## min> curve(cut01(x^2 - 1/4), col = "blue", add = TRUE, n = 500)
## 
## min> ## pmax(), pmin() preserve attributes of *first* argument
## min> D <- diag(x = (3:1)/4) ; n0 <- numeric()
## 
## min> stopifnot(identical(D,  cut01(D) ),
## min+           identical(n0, cut01(n0)),
## min+           identical(n0, cut01(NULL)),
## min+           identical(n0, pmax(3:1, n0, 2)),
## min+           identical(n0, pmax(n0, 4)))

Teraz spróbuj wywołać pomoc dla funkcji rep:

help(rep) rep pakiet:base Dokumentacja R

Replikuj elementy wektorów i list (Replicate Elements of Vectors and Lists)

Opis:

 'rep' replikuje wartości w 'x'. Jest to funkcja generyczna, a
 (wewnętrzna) domyślna metoda jest opisana tutaj.

Pliki

Wpisywanie poleceń za każdym razem, gdy ich potrzebujesz, działa tylko dla krótkich skryptów, oczywiście. Polecenia R mogą być również zapisywane w plikach tekstowych (z rozszerzeniem “.R”, zgodnie z konwencją) do wykonania później. Można je uruchamiać bezpośrednio z wiersza poleceń lub z uruchomionej instancji R.

Zróbymy obiekt a<-“To jest informacja” a następnie zapiszmy go w bierzącym katalogu pod anazwa Plik1.r

a<-"To jest informacja"
save(a, file ="Plik1.r")

Możemy teraz zobaczyć czy istnieje Plik1.r w bierzącym floderze

list.files()
##  [1] "000_cwiczenia.Rmd"        "ala.nb.html"             
##  [3] "ala.pdf"                  "ala.Rmd"                 
##  [5] "Cw_0_EN.html"             "Cw_0_EN.Rmd"             
##  [7] "Cw_0_PL.docx"             "Cw_0_PL.html"            
##  [9] "Cw_0_PL.log"              "Cw_0_PL.pdf"             
## [11] "Cw_0_PL.Rmd"              "Cw_1.docx"               
## [13] "Cw_1.html"                "Cw_1.Rmd"                
## [15] "Cw_1_EN.html"             "Cw_1_EN.Rmd"             
## [17] "Cw_1_files"               "Cw_1n.nb.html"           
## [19] "Cw_1n.Rmd"                "Cw_3.html"               
## [21] "Cw_3.Rmd"                 "Cw_4.html"               
## [23] "Cw_4.Rmd"                 "Cw_4_EN.docx"            
## [25] "Cw_4_EN.html"             "Cw_4_EN.pdf"             
## [27] "Cw_4_EN.Rmd"              "Cw_6_EN_AN.html"         
## [29] "Cw_6_EN_AN.Rmd"           "Cw_6_PL_AN.html"         
## [31] "Cw_6_PL_AN.Rmd"           "Cw_8_EN_PR_GC.html"      
## [33] "Cw_8_EN_PR_GC.nb.html"    "Cw_8_EN_PR_GC.Rmd"       
## [35] "Cw_8_PL_PR_GC.html"       "Cw_8_PL_PR_GC.Rmd"       
## [37] "Cw1.Rhistory"             "Cw2"                     
## [39] "Cw2-EN-RynekBankowy.html" "Cw2-EN-RynekBankowy.pdf" 
## [41] "Cw2-EN-RynekBankowy.Rmd"  "Cw2-RynekBankowy.html"   
## [43] "Cw2-RynekBankowy.pdf"     "Cw2 RynekBankowy.Rmd"    
## [45] "Cw2_EN_RynekBankowy.html" "Cw2_EN_RynekBankowy.pdf" 
## [47] "Cw2_EN_RynekBankowy.Rmd"  "Cw3"                     
## [49] "Cw3_EN.html"              "Cw3_EN.Rmd"              
## [51] "Cw3_PL.html"              "Cw3_PL.Rmd"              
## [53] "Cw4 AuditMatieraltiy"     "figures"                 
## [55] "Kody pomocnicze"          "OB"                      
## [57] "path"                     "pentle.R"                
## [59] "Plik1.r"                  "Plik2.r"                 
## [61] "Plik3.r"                  "R Audit.Rproj"           
## [63] "references.bib"           "rmarkdown.pdf"           
## [65] "rsconnect"                "test.html"               
## [67] "test.Rmd"                 "TokenGIT.txt"            
## [69] "Z1_A_MQT_Probkowanie.Rmd" "Z1_MQT_Probkowanie.docx" 
## [71] "Z1_MQT_Probkowanie.html"  "Z1_MQT_Probkowanie.Rmd"

Dalsza nauka

R ma system nauki samodzielnej nazywa sie Swirl [https://swirlstats.com/]. Jest pakiet z wbudowanymi kursami do nauki, by z niego skorzystać należy:

Po pierwsze zainstalować pakier swirl:

install.packages(“swirl”) z poziomu konsoli.

Następnie go uruchomić

library(swirl)
## 
## | Hi! I see that you have some variables saved in your workspace. To keep
## | things running smoothly, I recommend you clean up before starting swirl.
## 
## | Type ls() to see a list of the variables in your workspace. Then, type
## | rm(list=ls()) to clear your workspace.
## 
## | Type swirl() when you are ready to begin.

Oraz z konsoli podać polecenie swirl() by uruchomić proces nauki. Opanowanie tego pakietu wymaga 2-3 tygodni pracy, aczkolwiek warto.