0.1 Rodzaje struktur danych

0.1.1 Wektory

Zadanie 1. Utwórz wektor danych “wiek” (w latach). Każdy z nich ma mieć 10 obserwacji, dowolne wartości.

wiek <- c(20,22,24,26,55,46,40,67,54,33)

0.1.2 Czynnik

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_0 = ifelse(wiek>30,0,1)
ryzyko <- factor(ryzyko_0, levels=c(0,1),
                 labels = c("wysokie","niskie"))
        
ryzyko
##  [1] niskie  niskie  niskie  niskie  wysokie wysokie wysokie wysokie wysokie
## [10] wysokie
## Levels: wysokie niskie

0.1.3 Ramka danych

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=arrange(ramka, -wiek)
Ramka
##    wiek  ryzyko
## 1    67 wysokie
## 2    55 wysokie
## 3    54 wysokie
## 4    46 wysokie
## 5    40 wysokie
## 6    33 wysokie
## 7    26  niskie
## 8    24  niskie
## 9    22  niskie
## 10   20  niskie

0.1.4 Tablice

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”.

Ramka
##    wiek  ryzyko
## 1    67 wysokie
## 2    55 wysokie
## 3    54 wysokie
## 4    46 wysokie
## 5    40 wysokie
## 6    33 wysokie
## 7    26  niskie
## 8    24  niskie
## 9    22  niskie
## 10   20  niskie
Grupa_1 <- Ramka[c(1:5),]
Grupa_2 <- Ramka[c(6:10),]

Grupa_1
##   wiek  ryzyko
## 1   67 wysokie
## 2   55 wysokie
## 3   54 wysokie
## 4   46 wysokie
## 5   40 wysokie
Grupa_2
##    wiek  ryzyko
## 6    33 wysokie
## 7    26  niskie
## 8    24  niskie
## 9    22  niskie
## 10   20  niskie

0.1.5 Listy

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.

colours = c("blue","green","yellow")
lista = list(Grupa_1[1:3,],Grupa_2[1:3,],colours)
print(lista)
## [[1]]
##   wiek  ryzyko
## 1   67 wysokie
## 2   55 wysokie
## 3   54 wysokie
## 
## [[2]]
##   wiek  ryzyko
## 6   33 wysokie
## 7   26  niskie
## 8   24  niskie
## 
## [[3]]
## [1] "blue"   "green"  "yellow"

0.1.6 Macierze

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)
B
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
A <- matrix(1:6,nrow=2)
A
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
C <- matrix(1:6,nrow=3)
C
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6
D<-rbind(A,c(1,1,1))
D
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## [3,]    1    1    1
E<-cbind(C,c(1,1,1))
E
##      [,1] [,2] [,3]
## [1,]    1    4    1
## [2,]    2    5    1
## [3,]    3    6    1
E[3,]
## [1] 3 6 1
D[,3]
## [1] 5 6 1

0.2 Analiza opisowa

Zadanie 7. Dokonaj pełnej analizy opisowej dla osób z grupy 1. oraz grupy 2. (średnia, odchylenia, kwartyle, skośność, kurtoza).

mean(Grupa_1$wiek)
## [1] 52.4
var(Grupa_1$wiek)
## [1] 104.3
quantile(Grupa_1$wiek)
##   0%  25%  50%  75% 100% 
##   40   46   54   55   67
skewness(Grupa_1$wiek)
## [1] 0.253229
kurtosis(Grupa_1$wiek)
## [1] 2.0341
mean(Grupa_2$wiek)
## [1] 25
var(Grupa_2$wiek)
## [1] 25
quantile(Grupa_2$wiek)
##   0%  25%  50%  75% 100% 
##   20   22   24   26   33
skewness(Grupa_2$wiek)
## [1] 0.804984
kurtosis(Grupa_2$wiek)
## [1] 2.402

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).

hist(Ramka$wiek[ryzyko=="wysokie"], col = 'green',xlim = c(0,70),main = "Grupy ryzyka",xlab = "wiek",ylab="ilość osób")
hist(Ramka$wiek[ryzyko=="niskie"], col = 'blue',add=TRUE)

boxplot(Ramka$wiek[ryzyko=="wysokie"],Ramka$wiek[ryzyko=="niskie"], xlab="ryzyko",ylab="wiek", names=c("wysokie","niskie"))

0.3 Fajki

0.3.1 Fajka bazowa

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()

0.3.2 Fajka %>%

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: