round(6.999999, 5) # Liczba całkowita najbliższa wartości x, y ile miejsc
signif(5.43443344,4) # Wartość x zaokrąglona do k miejsc znaczących
floor(3.1) #Podłoga, czyli największa/ najmniejsza liczba całkowita nie większa od x
ceiling(3.2)
trunc(3.322) # Wartość x po odcięciu części rzeczywistej,
abs(-3) # Wartość bezwzględna z x
exp(3) # Funkcja wykładnicza (eksponenta) z x
sqrt(3) # pierwiastekWykład 1 i 2 - najważniejsze podstawy w R
1 Podstawowe wyrażenia w R
- indeksowanie od 1
- (option + _) ←
- plot - wykres punktowy
- plot ( type =“l”) - wykres liniowy
- operatory matematyczne na wektor działają na każdy element z osobna
- W przypadku wektorów o różnych długościach stosowana jest tzw. reguła zawijania wektora. Oznacza to, że wektor krótszy jest powielany, aż wykona wszystkie operacje na wektorze dłuższym.
max()wartość maksymalna wektoramin()wartość minimalna wektoramean()wartość średnia wektoramedian()Mediana z wektora (wartość środkowa zbioru)sum()wartość suma wektoraprod()iloczyn elementów wektorasd()wartość maksymalna wektoravar()Wariancja]summary()- zwraca kwartyle, medianę oraz średniąquantile()- zwraca określony kwantylrnorm()- generuje zbiory wartosci o rozkładzie normalnym orazrunif(), która generuje wektor wartości losowych.table(b)- jak czesto wystepuje jakas wartoscna.omit()- usuwa wszystkie braki danuchunique(a)- unikalne wartoscix\[-(2:4)\]-All elements except two to four.library(dplyr)- Load the packagestr()- szczegóły wewnętrznej reprezentacji obiektu
1.1 Operatory matematyczne
| Operacja | Wyrażenie |
| !x | negacja |
| x | y | alternatywa |
| x & y | koniunkcja |
2 Wektory
a2 <- c(1, 2, 3) # -> tworzy wektor
a2 <- c(1:3) #-> tworzy wektor
TRUE + 1 # T=1 , F=0[1] 2
typeof(as.double(a2)) # zmienia typ, trzeba nadpisac wektor aby poprawnie sie zapisał[1] "double"
seq(from = 1, to = 10, by = 1) # integer 1,2,3,4...,10, zamiast by można stosować lenght.out, określa liczbe elementów [1] 1 2 3 4 5 6 7 8 9 10
rep(1:4, times = 2) # powielamy 2 razy wektor[1] 1 2 3 4 1 2 3 4
rep(1:4, each = 2) # nie to samo,[1] 1 1 2 2 3 3 4 4
runif(n = 10, min =2, max = 5) # losowe wartosci podajemy n, wartość min i max. [1] 4.127063 4.192121 4.486360 3.201940 2.339570 4.675411 2.416380 3.313633
[9] 3.748010 2.999187
3 Litery
letters # małe litery wyswietla [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
LETTERS[5] # piąty -> E[1] "E"
letters[seq(1,length(letters),2)] # "a" "c" "e" "g" "i" "k" "m" "o" "q" "s" "u" "w" "y" [1] "a" "c" "e" "g" "i" "k" "m" "o" "q" "s" "u" "w" "y"
ISOdate(year = 2000, month = 1:6, day = 1) [1] "2000-01-01 12:00:00 GMT" "2000-02-01 12:00:00 GMT"
[3] "2000-03-01 12:00:00 GMT" "2000-04-01 12:00:00 GMT"
[5] "2000-05-01 12:00:00 GMT" "2000-06-01 12:00:00 GMT"
month.name # nazwy miesięcy [1] "January" "February" "March" "April" "May" "June"
[7] "July" "August" "September" "October" "November" "December"
length(letters) ; length(month.name)[1] 26
[1] 12
Cheat Sheet —> można używać na kolokwium WYDRUKOWANE
4 Listy
- lapply((lista), (działanie np. sqrt)) - odwolywanie sie do każdego elementu listy i wykonywanie jakiegoś działania.
- W przeciwieństwie do wektora, elementy listy mogą mieć różne typy.
- Jeśli chcemy wykonywać operacje na obiekcie listy, to stosujemy podwójny indeksator
[[x]]lub$
Przykładowa lista
kontakt <- list(nazwisko = c("Borsuk", "Koliber", "Tygrys"),
imie = c("Karol", "Eliza", "Anastazia"),
kod_pocztowy = c("33-178", "30-877","30-854"),
nr_budynku = c(5, 6, 2),
nr_lokalu = c(85, 32, NA),
woj = c("Opolskie", "Ślaskie", "Mazowieckie"),
tel_pr = c(505359357, 505234234, 676888965),
tel_sl = c(607000222, 611222333, 666999777) ,
firma = c("EB", "KHK", "ZKM"),
uczelnia = c("AGH", "PK", "AGH"),
email = c("bk@agh.pl", "ke@agh.pl","ta@agh.pl")
)
kontakt[[1]] <- c("Nowak","Kowalski", "Koper") # zmiana 2 elementu listy5 Macierze - tablica
matrix(0,2,4) # tworzenie [,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
matrix(c(1,2,3,1:3,3:5), nrow = 3, ncol = 3) [,1] [,2] [,3]
[1,] 1 1 3
[2,] 2 2 4
[3,] 3 3 5
dodaje się pionowo, 1 kolumna potem 2
6 Ramki danych
ramka <-data.frame(id = c(100, 101, 102),
wiek = c(25, 21, 22),
wzrost = seq(170, 190, 10),
chlopiec = c(TRUE, TRUE, FALSE))- zawsze przecinek na końcu
ramka$wiek- odwoływanienrow()- liczba wierszyncol()- liczba kolumndim()- liczba wierszy i kolumnhead()- podglad kilku pierwszych wierszytail()- podgląd kilku ostatnih wierszyView(), - wyświetl obiekt w tabelcedane[1,]- pierwszy wierszindeksy <- c(2:3,7:9)colnames(dane)- nazwy kolumnaggregate(dane$zarobki,list(plec = dane$plec), sum)- suma zarobków dla K i M
7 Podsumowanie
c(1:15)→ od 1 do 15rep(1:5, times=3)→ 12345,12345,12345rep(1:2, each=3)→ 111222seq(2, 3, by=0.5)→ 2.0 2.5 3.0sample(x = letters, replace = F, size = 15)→ losowanielitery2[4] <- "jdnjfnj”→ zamianalitery2[-(1:4)]→ wszystkie oprócz tychlitery2[litery2 > "b"] <- "hbehbe";→ zamienia wieksze od brev(x)→ odwraca xtable(wek)→ zlicza ile jakich wartościsrednia_a5 <- mean(dane1$a5, na.rm=T);→ średniasummary(dane1)→ statystykirnorm(1000) →ranodomowe do wykresu, z rozkładu normalnego