Zadanie 1. Utwórz wektor danych “wiek” (w latach). Każdy z nich ma mieć 10 obserwacji, dowolne wartości.
<- c(15,25,40,50,60,23,33,36,19,24) wiek
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.
<- as.factor(ifelse(wiek>30,0,1))
ryzyko <- c(wysokie=0, niskie=1)
kody <- factor(ryzyko, levels=kody,
ryzyko labels=names(kody))
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).
<- data.frame(wiek,ryzyko)
ramka <- ramka[order(wiek),]
ramka ramka
## wiek ryzyko
## 1 15 niskie
## 9 19 niskie
## 6 23 niskie
## 10 24 niskie
## 2 25 niskie
## 7 33 wysokie
## 8 36 wysokie
## 3 40 wysokie
## 4 50 wysokie
## 5 60 wysokie
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”.
<- array(wiek, dim=c(5,2,2))
tablica1 <- array(ryzyko, dim=c(5,2,2))
tablica2
<- abind(tablica1,tablica2)
tablica tablica
## , , 1
##
## [,1] [,2]
## [1,] "15" "23"
## [2,] "25" "33"
## [3,] "40" "36"
## [4,] "50" "19"
## [5,] "60" "24"
##
## , , 2
##
## [,1] [,2]
## [1,] "15" "23"
## [2,] "25" "33"
## [3,] "40" "36"
## [4,] "50" "19"
## [5,] "60" "24"
##
## , , 3
##
## [,1] [,2]
## [1,] "niskie" "niskie"
## [2,] "niskie" "wysokie"
## [3,] "wysokie" "wysokie"
## [4,] "wysokie" "niskie"
## [5,] "wysokie" "niskie"
##
## , , 4
##
## [,1] [,2]
## [1,] "niskie" "niskie"
## [2,] "niskie" "wysokie"
## [3,] "wysokie" "wysokie"
## [4,] "wysokie" "niskie"
## [5,] "wysokie" "niskie"
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.
<- list(tablica[1:3,,], c("nibieski", "czerwnoy", "zielony"))
lista names(lista) <- c("tablica", "kolory")
$kolory lista
## [1] "nibieski" "czerwnoy" "zielony"
saveRDS(lista,file="C:\\Users\\marty\\OneDrive\\Pulpit\\lista.Rds")
readRDS("C:\\Users\\marty\\OneDrive\\Pulpit\\lista.Rds")
## $tablica
## , , 1
##
## [,1] [,2]
## [1,] "15" "23"
## [2,] "25" "33"
## [3,] "40" "36"
##
## , , 2
##
## [,1] [,2]
## [1,] "15" "23"
## [2,] "25" "33"
## [3,] "40" "36"
##
## , , 3
##
## [,1] [,2]
## [1,] "niskie" "niskie"
## [2,] "niskie" "wysokie"
## [3,] "wysokie" "wysokie"
##
## , , 4
##
## [,1] [,2]
## [1,] "niskie" "niskie"
## [2,] "niskie" "wysokie"
## [3,] "wysokie" "wysokie"
##
##
## $kolory
## [1] "nibieski" "czerwnoy" "zielony"
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.
<- matrix(c(1:9), nrow=3, ncol=3)
B <- matrix(c(1:6), nrow=2)
A <- matrix(c(1:6), nrow=3)
C <- rbind(A, c(1,1,1))
D <- cbind(C, c(1,1,1))
E 3,] E[
## [1] 3 6 1
3] D[,
## [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(as.numeric(tablica[,1,2])) #pierwsza kolumna - wiek grupa nr.2
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 15 25 40 38 50 60
skewness(as.numeric(tablica[,1,2])) #wsk. asymetrii wieku ludzi z grupy nr.2
## [1] -0.0653142
kurtosis(as.numeric(tablica[,1,2])) #wsk. kurtozy wieku ludzi z grupy nr.2
## [1] -1.98077
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). legenda, opisać osie, dwie nakładające na siebie wykresy
par(mfrow=c(1,2))
hist(ramka$wiek,prob=TRUE,main="Rozkład wieku wg ryzyka kredytowego",cex.main=1, xlab="wiek", ylab="gęstość", ylim = c(0,0.05))
lines(density(ramka[ryzyko=="niskie",1]), col="red")
lines(density(ramka[ryzyko=="wysokie",1]),col="blue")
legend("bottomright",c("niebieski-wysokie ryzyko","czerwony-niskie ryzyko"))
boxplot(ramka$wiek~ramka$ryzyko, main="Rozkład wieku wg ryzyka kredytowego", cex.main=1, xlab="poziom ryzyka", ylab="wiek")
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: