Wykład 1 i 2 - najważniejsze podstawy w R

Author

Jakub Wilk

Published

November 1, 2023

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 wektora
  • min() wartość minimalna wektora
  • mean() wartość średnia wektora
  • median() Mediana z wektora (wartość środkowa zbioru)
  • sum() wartość suma wektora
  • prod() iloczyn elementów wektora
  • sd() wartość maksymalna wektora
  • var() Wariancja]
  • summary() - zwraca kwartyle, medianę oraz średnią
  • quantile() - zwraca określony kwantyl
  • rnorm() - generuje zbiory wartosci o rozkładzie normalnym oraz
  • runif(), która generuje wektor wartości losowych.
  • table(b) - jak czesto wystepuje jakas wartosc
  • na.omit() - usuwa wszystkie braki danuch
  • unique(a) - unikalne wartosci
  • x\[-(2:4)\] -All elements except two to four.
  • library(dplyr) - Load the package
  • str() - szczegóły wewnętrznej reprezentacji obiektu

1.1 Operatory matematyczne

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) # pierwiastek
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 listy

5 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ływanie
  • nrow() - liczba wierszy
  • ncol() - liczba kolumn
  • dim() - liczba wierszy i kolumn
  • head() - podglad kilku pierwszych wierszy
  • tail() - podgląd kilku ostatnih wierszy
  • View(), - wyświetl obiekt w tabelce
  • dane[1,] - pierwszy wiersz
  • indeksy <- c(2:3,7:9)
  • colnames(dane) - nazwy kolumn
  • aggregate(dane$zarobki,list(plec = dane$plec), sum) - suma zarobków dla K i M

7 Podsumowanie

  • c(1:15) → od 1 do 15
  • rep(1:5, times=3) → 12345,12345,12345
  • rep(1:2, each=3) → 111222
  • seq(2, 3, by=0.5) → 2.0 2.5 3.0
  • sample(x = letters, replace = F, size = 15) → losowanie
  • litery2[4] <- "jdnjfnj” → zamiana
  • litery2[-(1:4)] → wszystkie oprócz tych
  • litery2[litery2 > "b"] <- "hbehbe"; → zamienia wieksze od b
  • rev(x) → odwraca x
  • table(wek) → zlicza ile jakich wartości
  • srednia_a5 <- mean(dane1$a5, na.rm=T); → średnia
  • summary(dane1) → statystyki
  • rnorm(1000) → ranodomowe do wykresu, z rozkładu normalnego

8 CHEATSHEET

CHEATSHEET - 1

Base R

Data import