Wprowadzenie Funkcje i operatory Typy danych
Podstawy programowania w R
Przemysław Gordinowicz
Instytut Matematyki, Politechnika Aódzka
Systemy informatyczne w analizie danych
Wykład 1
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Plan wykładu
1
Wprowadzenie po co programować?
2
Podstawowe funkcje i operatory
3
Typy danych
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Plan wykładu
1
Wprowadzenie po co programować?
2
Podstawowe funkcje i operatory
3
Typy danych
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Literatura
P. Biecek, Przewodnik po pakiecie R, Oficyna Wydawnicza
GiS, Wrocław, 2008.
P. Biecek, Przewodnik po pakiecie R, fragment,
www.biecek.pl/R/R.pdf.
P. Biecek, Na przełaj przez Data Mining,
www.biecek.pl/R/naPrzelajPrzezDM.pdf.
A. Komsta, Wprowadzenie do środowiska R,
cran.r-project.org/doc/contrib/Komsta-Wprowadzenie.pdf.
Załączona dokumentacja pakietu R, 2010.
cran.r-project.org/doc.
M. Walesiak, E. Gatnar (red.), Statystyczna analiza danych
w wykorzystaniem programu R, PWN, Warszawa, 2009.
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Po co programować?
Nie pytaj się, czy coś można w R zrobić,
pytaj się jak?
Dostępnych jest ponad 1500 pakietów rozszerzających możliwości R.
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Po co programować?
Nie pytaj się, czy coś można w R zrobić,
pytaj się jak?
Dostępnych jest ponad 1500 pakietów rozszerzających możliwości R.
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Pomocy!
> ?cat
> help("cat")
> args(cat)
function (..., file = "", sep = " ", fill = FALSE, labels = NUL
append = FALSE)
NULL
> help.search("printing")
> apropos("choose")
[1] "choose" "choose.dir" "choose.files" "c
[5] "file.choose" "lchoose"
Jeśli inne sposoby zawiodą wyszukać na
www.r-project.org.
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Więc po co programować?
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Pisanie na ekranie
> cat("Ala ma", 3 + 4, "kotów.") # tu braknie przejścia do nowe
Ala ma 7 kotów. > cat("Ala ma", 3 + 4, "kotów.\n")
Ala ma 7 kotów.
> print("Ala ma 7 kotów.")
[1] "Ala ma 7 kotów."
> print(paste("Ala ma", 3 + 4, "kotów."))
[1] "Ala ma 7 kotów."
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Plan wykładu
1
Wprowadzenie po co programować?
2
Podstawowe funkcje i operatory
3
Typy danych
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Operator podstawienia
> x = 7
> cat(x)
7
> x <- 7
> 7 -> x
> (x = 7)
[1] 7
> x1 = x2 <- 7 -> x3
> cat("x1 =", x1, "x2 =", x2, "x3 =", x3, "\n")
x1 = 7 x2 = 7 x3 = 7
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Operatory arytmetyczne
- -x zmiana znaku
+ x+y dodawanie
- x-y odejmowanie
* x * y mnożenie
/ x / y dzielenie
^ x ^ y potęgowanie
%/% x %/% y dzielenie całkowite
%% x %% y reszta z dzielenia
Przykład:
> cat("19 / 7 =", 19%/%7, "reszty", 19%%7, "\n")
19 / 7 = 2 reszty 5
> 2^30
[1] 1073741824
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Operatory logiczne
== x == 7 porównanie
!= x != 7 brak równości
>, >= x >= 7 większy, większy równy
<, <= x <= 7 mniejszy, mniejszy równy
&&, & p && q iloczyn logiczny
||, | p || q suma logiczna
! !p negacja
~ zarobki ~wiek+plec zależność (pojawi się pózniej)
Przykład:
> 2 + 2 == 4 > (x > 5 && x < 10)
[1] TRUE [1] FALSE
> x = 5 > (x > 5 || x < 10)
[1] TRUE
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Operatory logiczne
== x == 7 porównanie
!= x != 7 brak równości
>, >= x >= 7 większy, większy równy
<, <= x <= 7 mniejszy, mniejszy równy
&&, & p && q iloczyn logiczny
||, | p || q suma logiczna
! !p negacja
~ zarobki ~wiek+plec zależność (pojawi się pózniej)
Przykład:
> 2 + 2 == 4 > (x > 5 && x < 10)
[1] TRUE [1] FALSE
> x = 5 > (x > 5 || x < 10)
[1] TRUE
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Wybrane funkcje matematyczne I
cos(x) wartość funkcji cosinus w punkcie x
sin(x), tan(x)
acos(x), asin(x) arcus cosinus, arcus sinus
atan(x) arcus tangens
atan2(y, x) atan2(y, x) = atan(y/x) przydatna do zamiany
współrzędnych na układ biegunowy
sqrt(x) pierwiastek kwadratowy, x ^0.5
exp(x) eksponenta ex
log(x) logarytm naturalny
log2(x), log10(x)
log(x, base) logarytm o wybranej podstawie
expm1(x) ex - 1 wyliczana z większą dokładnością
log1p(x) log(1 + x) dla |x| j" 1
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Wybrane funkcje matematyczne II
abs(x) moduł x
round(x) zaokrąglenie x
floor(x) podłoga od x
ceiling(x) sufit od x
trunc(x) obcięcie x do liczby całkowitej
signif(x, k) zaokrąglenie x do k cyfr znaczących
Przykład:
> round(1.5) > trunc(-1.5)
[1] 2 [1] -1
> floor(1.5) > signif(15234, 2)
[1] 1 [1] 15000
> trunc(1.5) > signif(1.5234, 2)
[1] 1 [1] 1.5
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Wybrane funkcje matematyczne III
beta(a, b) wartość funkcji (a, b)
gamma(x) wartość funkcji (x)
lgamma(x) log((x))
n
choose(n, k) ilość kombinacji
k
n
lchoose(n, k) log
k
combn(n, k) lista wszystkich kombinacji k elementowych
ze zbioru n elementowego
factorial(n) Silnia z n
lfactorial(n) log(n!)
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Wybrane funkcje matematyczne III
Przykład:
> choose(7, 2)
[1] 21
> combn(7, 2)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [
[1,] 1 1 1 1 1 1 2 2 2 2 2
[2,] 2 3 4 5 6 7 3 4 5 6 7
[,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21]
[1,] 3 3 3 4 4 4 5 5 6
[2,] 5 6 7 5 6 7 6 7 7
> factorial(171)
[1] Inf
> lfactorial(171)
[1] 711.7147
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Plan wykładu
1
Wprowadzenie po co programować?
2
Podstawowe funkcje i operatory
3
Typy danych
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Koncepcja
Nie ma potrzeby deklaracji zmiennych przyjmie ona taki typ
danych jaki ma wyrażenie, które do niej przypiszemy.
Typ danych jaki zawiera dane wyrażenie można sprawdzić
funkcją class(). Listę atrybutów związanych z (badziej
skomplikowanym) obiektem można sprawdzić funkcją
attributes().
> x = 7
> class(x)
[1] "numeric"
> class(x == 5)
[1] "logical"
> attributes(x)
NULL
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typy proste
typ liczbowy numeric (są też specyficzne typy
liczbowe)
typ logiczny logical (T lub TRUE, F lub FALSE)
typ znakowy character
> class(8.5)
[1] "numeric"
> class(1 > 3)
[1] "logical"
> class("Ala ma kota.")
[1] "character"
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typ wektorowy
Wektor to skończony ciąg danych jednego typu prostego.
Naprostszy konstruktor wektora to c(lista_wartosci), do
elementów odwołuje się przez operator [], a ilość elementów
podaje funkcja length():
> w = c(1, 2, 3)
> w[2]
[1] 2
> (wekt = c(7, TRUE, "Ala"))
[1] "7" "TRUE" "Ala"
> length(wekt)
[1] 3
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typ wektorowy inne konstrukcje I
> (w = 2:7)
[1] 2 3 4 5 6 7
> (w = 10:0)
[1] 10 9 8 7 6 5 4 3 2 1 0
> (w = seq(2, 7))
[1] 2 3 4 5 6 7
> (w = seq(1, 51, 7))
[1] 1 8 15 22 29 36 43 50
> (w = seq(10, 20, length.out = 4))
[1] 10.00000 13.33333 16.66667 20.00000
> (w = seq(10, 20, along.with = c(1, 2, 3)))
[1] 10 15 20
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typ wektorowy inne konstrukcje II
> (w = rep(5, 3))
[1] 5 5 5
> (w = rep(c(1, 2), 3))
[1] 1 2 1 2 1 2
> (w = c(rep(1, 5), 2))
[1] 1 1 1 1 1 2
> (w = sample(1:100, 5)) # losowanie
[1] 78 88 52 22 4
> (w = sample(1:10, 15, rep = T)) # losowanie ze zwracaniem
[1] 6 1 1 3 2 5 7 1 1 10 6 7 2 4 9
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typ wektorowy operacje arytmetyczne
Na wektorach typu liczbowego można wykonywać operacje
i funkcje arytmetyczne wyniki będą odnosić się do
pojedynczych współrzędnych.
> c(1, 2, 3) c(3, 4, 5)
*
[1] 3 8 15
> 2 c(1, 2, 3)
*
[1] 2 4 6
> sin(c(pi/2, pi/3, pi/4))
[1] 1.0000000 0.8660254 0.7071068
> c(1, 2, 3) c(3, 4, 5, 6)
*
[1] 3 8 15 6
Warning message:
In c(1, 2, 3) c(3, 4, 5, 6) :
*
longer object length is not a multiple of shorter object leng
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typ wektorowy operacje logiczne
Podobnie jak w wypadku operacji arytmetycznych, operacje
logiczne na wektorach są wykonywane na jego współrzędnych
a wynikiem jest wektor wartości logicznych.
Uwaga: operatory leniwe && i || działają wyłącznie na
pierwszych współrzędnych wektorów.
> w = c(1, 2, 3) > !(w >= v) && (w == 1)
> v = c(3, 2, 1)
[1] TRUE
> w >= 2
> !(w >= v) & (w == 1)
[1] FALSE TRUE TRUE
[1] TRUE FALSE FALSE
> w < v
[1] TRUE FALSE FALSE
Przemysław Gordinowicz Podstawy programowania w R
Wprowadzenie Funkcje i operatory Typy danych
Typ wektorowy funkcje agregujące
sum(x) suma elementów wektora x
prod(x) iloczyn elementów wektora x
min(x) najmniejszy element x
max(x) największy element x
mean(x) średnia z elementów x
> prod(c(3, 4, 5))
[1] 60
> mean(c(10, 20, 22))
[1] 17.33333
Przemysław Gordinowicz Podstawy programowania w R
Wyszukiwarka
Podobne podstrony:
Sieci komputerowe wyklady dr FurtakWykład 05 Opadanie i fluidyzacjaWYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznejmo3 wykladyJJZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3Wyklad 2 PNOP 08 9 zaoczneWyklad studport 8Kryptografia wykladBudownictwo Ogolne II zaoczne wyklad 13 ppozwyklad09Sporzadzanie rachunku przepływów pienieżnych wykład 1 i 2fcs wyklad 5Wyklad08 Zaopatrz wWodeWyklad3więcej podobnych podstron