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(15,25,40,50,60,23,33,36,19,24)

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<- as.factor(ifelse(wiek>30,0,1))
etykiety<-c(wysokie=0,niskie=1)
ryzyko<-factor(ryzyko,levels = etykiety, labels = names(etykiety))

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

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

nazwy<-c("Grupa1","Grupa2")
nazwa2<-c("wiek","ryzyko")
tablica <-array(c(unlist(ramka[1:5,]),unlist(ramka[6:10,])),dim=c(5,2,2),dimnames=list(NULL,nazwa2,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

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.

lista<-list(tablica[1:3,1:2,1:2],"czerwony","biały","żółty")
print(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] "czerwony"
## 
## [[3]]
## [1] "biały"
## 
## [[4]]
## [1] "żółty"

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

##średnia
mean(tablica[,1,1])
## [1] 43.8
mean(tablica[,1,2])
## [1] 21.2
##odchylenia
sd(tablica[,1,1])
## [1] 11.09955
sd(tablica[,1,2])
## [1] 4.147288
##kwantyle
quantile(tablica[,1,1])
##   0%  25%  50%  75% 100% 
##   33   36   40   50   60
quantile(tablica[,1,2])
##   0%  25%  50%  75% 100% 
##   15   19   23   24   25
##skośność
install.packages("PerformanceAnalytics", repos = "http://cran.us.r-project.org")
## Instalowanie pakietu w 'C:/Users/piotr/OneDrive/Dokumenty/R/win-library/4.1'
## (ponieważ 'lib' nie jest określony)
## package 'PerformanceAnalytics' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\piotr\AppData\Local\Temp\RtmpSErf8B\downloaded_packages
library("PerformanceAnalytics")
## Warning: pakiet 'PerformanceAnalytics' został zbudowany w wersji R 4.1.3
## Ładowanie wymaganego pakietu: xts
## Ładowanie wymaganego pakietu: zoo
## Warning: pakiet 'zoo' został zbudowany w wersji R 4.1.2
## 
## Dołączanie pakietu: 'zoo'
## Następujące obiekty zostały zakryte z 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Dołączanie pakietu: 'PerformanceAnalytics'
## Następujący obiekt został zakryty z 'package:graphics':
## 
##     legend
skewness(tablica[,1,1])
## [1] 0.5520247
skewness(tablica[,1,2])
## [1] -0.6516986
##kurtoza
kurtosis(tablica[,1,1])
## [1] -1.190928
kurtosis(tablica[,1,2])
## [1] -1.118138

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"],main="Histogram 1",col=rainbow(20),xlab="Wiek", ylab="Czestosc")

hist(ramka$wiek[ramka$ryzyko=="wysokie"],main="Histogram 2",col=rainbow(20), xlab="Wiek", ylab="Czestosc")

boxplot(ramka$wiek[ramka$ryzyko=="niskie"], col=rainbow(20), main="Niskie ryzyko")
boxplot(ramka$wiek[ramka$ryzyko=="wysokie"], col=rainbow(2), main="Wysokie ryzyko")

boxplot(ramka$wiek~ramka$ryzyko,col=rainbow(2),main="Ryzko razem")