Wprowadzenie do R
Transkrypt
Wprowadzenie do R
Wstęp do R Szukanie pomocy: 1. ?xxx {gdzie xxx jest szukaną frazą} Klasy danych: Wprowadzenie do R 1. vector Dr Paweł Kleka 4. data.frame 2. matrix 3. list 29 października 2016 5. inne [np. class] 2/22 Podstawy R Tworzenie macierzy przez łączenie kolum lub wierszy Tworzenie wektora x=1:6 y=5:10 cbind(x,y) # kolumnami v <- c(1,3,5,7) Lista to wektory z obiektami różnej klasy ## ## ## ## ## ## ## l <- c("Blue", 2, 5, "Red") Tworzenie macierzy m <- matrix(1:6,2,3) m2 <- matrix(1:6) #macierz z wektora dim(m2) <- c(2,3) #przez dodanie wymiarów [1,] [2,] [3,] [4,] [5,] [6,] x y 1 5 2 6 3 7 4 8 5 9 6 10 rbind(x,y) # wierszami 3/22 ## [,1] [,2] [,3] [,4] [,5] [,6] ## x 1 2 3 4 5 6 ## y 5 6 7 8 9 10 4/22 Pomocne funkcje Ramki na dane(data frames) attributes(m2) - Sprawdzanie właściwości str(m2) - sprawdzanie struktury class(m2) - sprawdzanie klasy Różnią się tym od macierzy, że każda kolumna może przechowywać inny rodzaj danych Tworzenie ramki Wywoływanie konkretnej wartości z macierzy d <- data.frame( subjectID=1:5, gender=c("M","F","F","M","F"), score=c(8,3,6,5,5) ) d m2[1,2] ## [1] 3 5/22 ## ## ## ## ## 1 2 3 4 subjectID gender score 1 M 8 2 F 3 3 F 6 4 M 5 6/22 Dane zewnętrzne Liczba wierszy · wczytywanie danych z różnych źródeł nrow(d) - csv <- read.csv() Liczba kolumn - spss <- read.spss() {foreign} ncol(d) - schowek <- read.clipboard {psych} Wywoływanie konkretnej wartości · zapisywanie danych d[2,1]; d[1,2] - write.table(obiekt, plik) Podgląd - save(plik) # zapis workspace View(d) Edycja edit(d); fix(d) 7/22 8/22 Manipulacje danymi za pomocą dplyr Dane · Operator %>% pozwala łączyć polecenia w czytelne ciągi ## ## ## ## ## ## ## ## ## library(dplyr) library(foreign) setwd("~/Documents/dydaktyka/statystyka - WTAD/2015/01 - regresja/") dane <- data.frame(read.spss("dane/kalorie.sav")) dane %>% select(alkohol, kalorie) %>% group_by(alkohol) %>% summarise( cal = mean(kalorie, na.rm=TRUE), nobs = n() ) %>% filter(nobs >1) %>% arrange (nobs) # A tibble: 6 × 3 alkohol cal nobs <dbl> <dbl> <int> 1 4.2 34.09817 2 2 4.5 42.62271 2 3 4.6 42.76968 4 4 4.9 44.38641 4 5 5.0 44.97431 5 6 4.7 43.43924 9 9/22 10/22 Wybrane funkcje statystyczne stats Grafika opisowa · max() 3 grupy pakietów graficznych: · min() · base · mean() / median() · lattice · sd() · ggplot2 > ggvis · kurtosis() / skewness() · var() / range() / IRQ() · cor() 11/22 12/22 Wybrane grafy {base} Wybrane grafy {base} hist(dane$kalorie, main="Histogram kalorii") boxplot(dane$kalorie, xlab="Kalorie", ylim=c(35,50)) 14/22 13/22 Wybrane grafy {base} Wybrane grafy {base} mosaicplot(table(cut(dane$kalorie,breaks = c(0,40,45,50,99)), cut(dane$alkohol,c(0,3,4,5,9))), main="") plot(dane$kalorie, dane$alkohol) 15/22 16/22 Wybrane grafy {ggvis} Wybrane grafy {ggvis} library(ggvis) dane %>% ggvis(~kalorie, ~alkohol) %>% layer_points(fill := "red", size := 20) %>% layer_points(stroke := "black", fill := NA, size := 20) 5.5 5.0 alkohol 4.5 4.0 3.5 3.0 2.5 20 25 30 35 40 45 50 kalorie 17/22 18/22 Wybrane grafy {ggvis} Wybrane grafy {ggvis} dane %>% ggvis(~kalorie, ~alkohol) %>% layer_points() %>% layer_model_predictions(model="lm") 5.5 5.0 alkohol 4.5 4.0 3.5 3.0 2.5 20 25 30 35 40 45 50 kalorie 19/22 20/22 Wybrane grafy {ggvis} Wybrane grafy {ggvis} dane %>% mutate(z=factor(kalorie<43)) %>% #dychotomizacja ggvis(~kalorie, ~alkohol, fill=~factor(z)) %>% group_by(z) %>% layer_points() %>% layer_model_predictions(model="lm", stroke=~z) factor(z) z 5.5 FALSE TRUE 5.0 alkohol 4.5 4.0 3.5 3.0 2.5 20 25 30 35 40 45 50 kalorie 21/22 22/22