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)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)## Factor w/ 2 levels "wysokie","niskie": 2 2 1 1 1 2 1 1 2 2
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),]
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("Grupa1", "Grupa2")
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## , , Grupa1
##
## Wiek Ryzyko
## [1,] 60 1
## [2,] 50 1
## [3,] 40 1
## [4,] 36 1
## [5,] 33 1
##
## , , Grupa2
##
## 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("pink", "gold", "black"))
lista## [[1]]
## , , Grupa1
##
## Wiek Ryzyko
## [1,] 60 1
## [2,] 50 1
## [3,] 40 1
##
## , , Grupa2
##
## Wiek Ryzyko
## [1,] 25 2
## [2,] 24 2
## [3,] 23 2
##
##
## [[2]]
## [1] "pink" "gold" "black"
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)
C <- matrix(1:6, nrow = 3)
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).
library(e1071)## Warning: pakiet 'e1071' został zbudowany w wersji R 4.2.2
summary(tablica[,1,2])## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 15.0 19.0 23.0 21.2 24.0 25.0
skewness(tablica[,1,2])## [1] -0.466318
kurtosis(tablica[,1,2])## [1] -1.79561
mean(tablica[,1,2])## [1] 21.2
sd(tablica[,1,2])## [1] 4.14729
quantile(tablica[,1,2])## 0% 25% 50% 75% 100%
## 15 19 23 24 25
summary(tablica[,1,1])## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 33.0 36.0 40.0 43.8 50.0 60.0
skewness(tablica[,1,1])## [1] 0.394997
kurtosis(tablica[,1,1])## [1] -1.84219
mean(tablica[,1,1])## [1] 43.8
sd(tablica[,1,1])## [1] 11.0995
quantile(tablica[,1,1])## 0% 25% 50% 75% 100%
## 33 36 40 50 60
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[ramka$ryzyko=="niskie"],
col="pink",
xlab="Wiek", ylab="Ryzyko",
main = "Ryzyko kredytowe ze względu na wiek",
cex.main=0.8)
boxplot(ramka$wiek~ramka$ryzyko,
col="grey",
xlab="Ryzyko", ylab="Wiek",
main = "Ryzyko kredytowe ze względu na wiek",
cex.main=0.8)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: