Piotr Staszkiewicz
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
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
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
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
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.
…
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"
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.