Zadanie 1. Utwórz wektor danych “wiek” (w latach). Wektor ma mieć 10 obserwacji, dowolne wartości.
wiek <- c(15,25,40,50,60,23,33,36,19,24)
wiek## [1] 15 25 40 50 60 23 33 36 19 24
Zadanie 2. Utwórz wektor ryzyko jako czynnik (factor): dla wieku >30 lat “0” o etykiecie “wysokie”, a dla pozostałych “1” o etykiecie “niskie”. Wskazówka: można wykorzystać ifelse.
ryzyko <- factor(ifelse(wiek>30,0,1) , labels=c("Wysokie","Niskie"))
#str(ryzyko)
#levels(ryzyko)
ryzyko## [1] Niskie Niskie Wysokie Wysokie Wysokie Niskie Wysokie Wysokie Niskie
## [10] Niskie
## Levels: Wysokie Niskie
Zadanie 3. Połącz wiek i ryzyko tworząc nową ramkę danych o nazwie “ramka”. Posortuj obserwacje wg wieku (malejąco).
ramka <- data.frame(wiek, ryzyko)
ramka <- ramka [order(-wiek),]
ramka## wiek ryzyko
## 5 60 Wysokie
## 4 50 Wysokie
## 3 40 Wysokie
## 8 36 Wysokie
## 7 33 Wysokie
## 2 25 Niskie
## 10 24 Niskie
## 6 23 Niskie
## 9 19 Niskie
## 1 15 Niskie
Zadanie 4. Utwórz tablicę “tablica” z wieku i ryzyka o wymiarach 5 wierszy, 2 kolumny (zmienne), 2 podgrupy o nazwie “Grupa 1.” oraz “Grupa 2”.
nazwy <- c("Grupa 1", "Grupa 2.")
nazwy2 <- c("Wiek", "Ryzyko")
tablica <- array(c(unlist(ramka[1:5,]),unlist(ramka[6:10,])),
dim=c(5,2,2),
(dimnames=list(NULL,nazwy2, nazwy)))
tablica## , , Grupa 1
##
## Wiek Ryzyko
## [1,] 60 1
## [2,] 50 1
## [3,] 40 1
## [4,] 36 1
## [5,] 33 1
##
## , , Grupa 2.
##
## Wiek Ryzyko
## [1,] 25 2
## [2,] 24 2
## [3,] 23 2
## [4,] 19 2
## [5,] 15 2
Zadanie 5. Utwórz listę “lista” zawierającą pierwsze 3 elementy każdej z grup w tablicy “tablica” oraz 3 kolory które najbardziej lubisz.
lista <- list(tablica[1:3,,],c("blue","green", "red"))
names(lista) <- c("tab","kolory")
lista$kolory[1]## [1] "blue"
lista## $tab
## , , Grupa 1
##
## Wiek Ryzyko
## [1,] 60 1
## [2,] 50 1
## [3,] 40 1
##
## , , Grupa 2.
##
## Wiek Ryzyko
## [1,] 25 2
## [2,] 24 2
## [3,] 23 2
##
##
## $kolory
## [1] "blue" "green" "red"
Zadanie 6. Utwórz macierz kwadratową B z cyfr od 1 do 9; macierz kwadratową A 2x3 z cyfr od 1 do 6; macierz C 3x2 z cyfr od 1 do 6. Dodaj do macierzy A wiersz [1,1,1] jako macierz D oraz do macierzy C kolumnę [1,1,1] jako macierz E. Wyświetl tylko trzeci wiersz macierzy E i trzecią kolumnę macierzy D.
B <- matrix(1:9, nrow=3, ncol=3,)
A <- matrix(1:6, nrow=2, ncol=3)
C <- matrix(1:6, nrow=3, ncol=2)
D <- rbind(A, c(1,1,1))
E <- cbind(C, c(1,1,1))
E[3,]## [1] 3 6 1
D[,3]## [1] 5 6 1
Zadanie 7. Dokonaj pełnej analizy opisowej dla osób z grupy 1. oraz grupy 2. (średnia, odchylenia, kwartyle, skośność, kurtoza).
Analiza_Gr1 <- data.frame(ramka[1:5,])
Analiza_Gr1 %>%
mutate(
średni_Wiek = mean(wiek),
odchylenie = sd(wiek),
kwartyle = quantile(wiek),
Wsp.skośności = sd(wiek)/mean(wiek),
Kurtoza = kurtosis(wiek)
)## wiek ryzyko średni_Wiek odchylenie kwartyle Wsp.skośności Kurtoza
## 5 60 Wysokie 43.8 11.0995 33 0.253414 1.80907
## 4 50 Wysokie 43.8 11.0995 36 0.253414 1.80907
## 3 40 Wysokie 43.8 11.0995 40 0.253414 1.80907
## 8 36 Wysokie 43.8 11.0995 50 0.253414 1.80907
## 7 33 Wysokie 43.8 11.0995 60 0.253414 1.80907
Analiza_Gr2 <- data.frame(ramka[6:10,])
Analiza_Gr2 %>%
mutate(
średni_wiek = mean(wiek),
odchylenie = sd(wiek),
kwartyle = quantile(wiek),
Wsp.skośności = sd(wiek)/mean(wiek),
Kurtoza = kurtosis(wiek)
)## wiek ryzyko średni_wiek odchylenie kwartyle Wsp.skośności Kurtoza
## 2 25 Niskie 21.2 4.14729 15 0.195627 1.88186
## 10 24 Niskie 21.2 4.14729 19 0.195627 1.88186
## 6 23 Niskie 21.2 4.14729 23 0.195627 1.88186
## 9 19 Niskie 21.2 4.14729 24 0.195627 1.88186
## 1 15 Niskie 21.2 4.14729 25 0.195627 1.88186
Zadanie 8. Przedstaw na histogramach oraz wykresach ramkowych rozkłady wieku osób z wysokim i niskim ryzykiem kredytowym (porównanie - 2 wykresy obok siebie).
par(mfrow=c(1,2))
hist(ramka$wiek, col="blue", main="Rozkład osób - Ryzyko (Histogram)", xlab = "Wiek", ylab = "Gęstość", cex.main=0.6)
boxplot(ramka$wiek~ramka$ryzyko, col="blue", main="Rozkład osób - Ryzyko (Wykres ramkowy)",xlab="Ryzyko", ylab="Wiek",cex.main=0.6)Przykład. Dane dotyczą prawie 985 transakcji sprzedaży mieszkań z Sacramento (Kalifornia,USA). Poniżej pokazano przykład wykorzystania fajki bazowej R “|>”: wykres logarytmu gęstości cen.
price |>
log() |>
density() |>
plot()Przykład. Wykreśl histogram cen sprzedaży mieszkań (“Condo”) z dwiema sypialniami.
Filtry z dplyr działają na całej ramce danych, stąd by wykreślić ceny musimy użyć pakietu ggplot2:
Bez użycia filtra i fajek nie ma takiej potrzeby: