Zadanie 1. Utwórz wektor danych “wiek” (w latach). Każdy z nich ma mieć 10 obserwacji, dowolne wartości.
wiek <- c(15,25,40,50,60,23,33,36,19,24)
ryzyko <- c(0,1,0,1,0,1,1,1,0,0)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 <- as.factor(ifelse(wiek<30,0,1))
kody <- c(wysokie=0, niskie=1)
ryzyko <- factor(ryzyko, levels=kody, labels=names(kody))
levels(ryzyko)## [1] "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),]
View(ramka)
ramka## wiek ryzyko
## 1 15 wysokie
## 9 19 wysokie
## 6 23 wysokie
## 10 24 wysokie
## 2 25 wysokie
## 7 33 niskie
## 8 36 niskie
## 3 40 niskie
## 4 50 niskie
## 5 60 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”.
tablica1 <- array(ryzyko,dim = list(5,1,2))
tablica2 <- array(wiek,dim = list(5,1,2))
tablica1## , , 1
##
## [,1]
## [1,] "wysokie"
## [2,] "wysokie"
## [3,] "niskie"
## [4,] "niskie"
## [5,] "niskie"
##
## , , 2
##
## [,1]
## [1,] "wysokie"
## [2,] "niskie"
## [3,] "niskie"
## [4,] "wysokie"
## [5,] "wysokie"
tablica2## , , 1
##
## [,1]
## [1,] 15
## [2,] 25
## [3,] 40
## [4,] 50
## [5,] 60
##
## , , 2
##
## [,1]
## [1,] 23
## [2,] 33
## [3,] 36
## [4,] 19
## [5,] 24
library(abind)
tablica <- abind(list(tablica1,tablica2),rev.along = 2, new.names = list(NULL,list("wiek","ryzyko"), list("Grupa1","Grupa2")))
tablica ## , , Grupa1
##
## wiek ryzyko
## [1,] "wysokie" "15"
## [2,] "wysokie" "25"
## [3,] "niskie" "40"
## [4,] "niskie" "50"
## [5,] "niskie" "60"
##
## , , Grupa2
##
## wiek ryzyko
## [1,] "wysokie" "23"
## [2,] "niskie" "33"
## [3,] "niskie" "36"
## [4,] "wysokie" "19"
## [5,] "wysokie" "24"
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,1:2,1:2],"czarny","różowy","granatowy")
print(lista)## [[1]]
## , , Grupa1
##
## wiek ryzyko
## [1,] "wysokie" "15"
## [2,] "wysokie" "25"
## [3,] "niskie" "40"
##
## , , Grupa2
##
## wiek ryzyko
## [1,] "wysokie" "23"
## [2,] "niskie" "33"
## [3,] "niskie" "36"
##
##
## [[2]]
## [1] "czarny"
##
## [[3]]
## [1] "różowy"
##
## [[4]]
## [1] "granatowy"
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,3,3)
A <- matrix(1:6,2,3)
C <- matrix(1:6,3,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).
summary (tablica2[,,1])## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 15 25 40 38 50 60
summary (tablica2[,,2])## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 19 23 24 27 33 36
library(e1071)
skewness(tablica2[, ,1])## [1] -0.0653142
skewness(tablica2[, ,2])## [1] 0.185074
kurtosis(tablica2[, ,1])## [1] -1.98077
kurtosis(tablica2[, ,2])## [1] -2.07324
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, prob=TRUE, main="Rozkład wieku według ryzyka kredytowego", cex.main=1, xlab ="wiek", ylab="gęstość", ylim=c(0,0.055) )
lines(density(ramka[ryzyko=="niskie",1]), col="red")
lines(density(ramka[ryzyko=="wysokie",1]), col="blue")
legend("bottomright", c("czerwony-wysokie ryzyko", "niebieski-niskie ryzyko"))
boxplot(ramka$wiek~ramka$ryzyko, main="Rozkład wieku według ryzyka kredytowego",cex.main=1, ylab="wiek", xlab="ryzyko")