5 Exercitii

Incărcăm pachete:

Pregătim un tabel pentru reprezentare:

  • păstrăm doar observațiile din anul 2007;
  • ștergem coloana cu anul (year);
  • schimbăm nume de coloane în limba română.
tabel_intermediar  <- gapminder[gapminder$year==2007,]
tabel <- tabel_intermediar[,-3]
colnames(tabel)[2]="Continent"
colnames(tabel)[5]='GDP'
colnames(tabel)[4]='Populatie'

Reprezentăm un nor de puncte la care adăugăm etichete pentru axe și titlu, subtitlu, nota de subsol.

ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(aes(shape=Continent))+
  labs(
    x='eticheta pentru x',
    y='eticheta pentru y',
    title='Titlu mare pentru grafic',
    subtitle = 'ceva subtitlu subtil',
    caption = 'nota de subsol/ explicatie in plus'
  )

Cu tabelul flights:

?flights

Lista companii aeriene

# flights$carrier

Selectăm zborurile “AS” - Alaska airlines.

zboruri <- flights[flights$carrier=="AS",]

sumar:

summary(zboruri)
##       year          month             day           dep_time     
##  Min.   :2013   Min.   : 1.000   Min.   : 1.00   Min.   : 651.0  
##  1st Qu.:2013   1st Qu.: 3.000   1st Qu.: 8.00   1st Qu.: 717.8  
##  Median :2013   Median : 6.000   Median :16.00   Median :1805.0  
##  Mean   :2013   Mean   : 6.415   Mean   :15.79   Mean   :1294.6  
##  3rd Qu.:2013   3rd Qu.: 9.000   3rd Qu.:23.00   3rd Qu.:1825.0  
##  Max.   :2013   Max.   :12.000   Max.   :31.00   Max.   :2205.0  
##                                                  NA's   :2       
##  sched_dep_time   dep_delay          arr_time    sched_arr_time
##  Min.   : 705   Min.   :-21.000   Min.   :   3   Min.   :1015  
##  1st Qu.: 720   1st Qu.: -7.000   1st Qu.:1003   1st Qu.:1025  
##  Median :1815   Median : -3.000   Median :2043   Median :2125  
##  Mean   :1285   Mean   :  5.805   Mean   :1565   Mean   :1595  
##  3rd Qu.:1825   3rd Qu.:  3.000   3rd Qu.:2128   3rd Qu.:2145  
##  Max.   :1835   Max.   :225.000   Max.   :2355   Max.   :2158  
##                 NA's   :2         NA's   :2                    
##    arr_delay         carrier              flight         tailnum         
##  Min.   :-74.000   Length:714         Min.   :  5.00   Length:714        
##  1st Qu.:-32.000   Class :character   1st Qu.:  7.00   Class :character  
##  Median :-17.000   Mode  :character   Median :  7.00   Mode  :character  
##  Mean   : -9.931                      Mean   : 12.19                     
##  3rd Qu.:  2.000                      3rd Qu.: 15.00                     
##  Max.   :198.000                      Max.   :915.00                     
##  NA's   :5                                                               
##     origin              dest              air_time        distance   
##  Length:714         Length:714         Min.   :277.0   Min.   :2402  
##  Class :character   Class :character   1st Qu.:314.0   1st Qu.:2402  
##  Mode  :character   Mode  :character   Median :324.0   Median :2402  
##                                        Mean   :325.6   Mean   :2402  
##                                        3rd Qu.:336.0   3rd Qu.:2402  
##                                        Max.   :392.0   Max.   :2402  
##                                        NA's   :5                     
##       hour           minute        time_hour                     
##  Min.   : 7.00   Min.   : 5.00   Min.   :2013-01-01 07:00:00.00  
##  1st Qu.: 7.00   1st Qu.:20.00   1st Qu.:2013-03-31 09:45:00.00  
##  Median :18.00   Median :25.00   Median :2013-06-28 12:30:00.00  
##  Mean   :12.62   Mean   :22.18   Mean   :2013-06-29 05:05:27.73  
##  3rd Qu.:18.00   3rd Qu.:25.00   3rd Qu.:2013-09-25 15:15:00.00  
##  Max.   :18.00   Max.   :35.00   Max.   :2013-12-31 18:00:00.00  
## 
ggplot(data=zboruri, aes(x=dep_delay, y=arr_delay))+
  geom_point()
## Warning: Removed 5 rows containing missing values (`geom_point()`).

5.1 Valori lipsa:

lipsa <- is.na(zboruri$dep_delay)
sum(lipsa)
## [1] 2
zboruriFaraNA1 <- zboruri[!is.na(zboruri$dep_delay),]
ggplot(data=zboruri, aes(x=dep_delay, y=arr_delay))+
  geom_point()
## Warning: Removed 5 rows containing missing values (`geom_point()`).

rezolv si arr_delay

zboruriFaraNA2 <- zboruriFaraNA1[!is.na(zboruriFaraNA1$arr_delay),]
ggplot(data=zboruriFaraNA2, aes(x=dep_delay, y=arr_delay))+
  geom_point()

alte variante de a renunta la valori lipsa

  • elimin toate NA
faraNAdeTot <- na.omit(zboruri)

5.2 Exersăm:

?gapminder
  1. Selectați observațiile din 2002.
tabel <- gapminder[gapminder$year==2002,]
head(tabel)
## # A tibble: 6 × 6
##   country     continent  year lifeExp      pop gdpPercap
##   <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
## 1 Afghanistan Asia       2002    42.1 25268405      727.
## 2 Albania     Europe     2002    75.7  3508512     4604.
## 3 Algeria     Africa     2002    71.0 31287142     5288.
## 4 Angola      Africa     2002    41.0 10866106     2773.
## 5 Argentina   Americas   2002    74.3 38331121     8798.
## 6 Australia   Oceania    2002    80.4 19546792    30688.
  1. Redenumiți toate coloanele în limba română.
colnames(tabel)
## [1] "country"   "continent" "year"      "lifeExp"   "pop"       "gdpPercap"
colnames(tabel)=c('Tara', 'Continent', "An", "LifeExp", "Populatie", 'GDP')
  1. Reprezentați un nor de puncte pentru gdp și pop.
ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point()
  1. Colorați punctele cu o culoare la alegere.
ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(color='tomato')
  1. Colorați punctele în funcție de continent.
ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(aes(color=Continent))
  1. Setați mărimea punctelor în funcție de lifeExp.
ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(aes(color=Continent, size=LifeExp))

6.1. Schimbarea formei:

ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(aes(shape=Continent))
  1. Adaugati etichete la axe, titlu, subtitlu si nota de subsol la ultimul grafic.
ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(aes(shape=Continent))+
  labs(
    x='eticheta pentru x',
    y='eticheta pentru y',
    title='Titlu mare pentru grafic',
    subtitle = 'ceva subtitlu subtil',
    caption = 'nota de subsol/ explicatie in plus'
  )
  1. Setati transaparenta punctelor la ultimul grafic.
ggplot(data=tabel, aes(x=GDP, y=Populatie))+
  geom_point(aes(shape=Continent), alpha=0.5)+
  labs(
    x='eticheta pentru x',
    y='eticheta pentru y',
    title='Titlu mare pentru grafic',
    subtitle = 'ceva subtitlu subtil',
    caption = 'nota de subsol/ explicatie in plus'
  )