Exercici 5

A l’exemple següent veurem com utilitzar diferents operadors sobre el conjunt de dades birthwt, així com també algunes funcions que ens permeten obtenir més informació de les variables.

Primer hem de carregar les dades. En aquest cas, són el dataset “birthwt”, del paquet MASS.

El conjunt de dades birthwt conté 189 observacions i 10 variables, recollides el 1986 al Baystate Medical Center de Springfield, Massachusetts. Inclou informació sobre el pes en néixer (si és inferior a 2,5 kg), factors maternals com l’edat, el pes en l’última menstruació, l’ètnia, l’hàbit de fumar durant l’embaràs, els antecedents de part prematur, la hipertensió, la irritabilitat uterina, el nombre de visites mèdiques durant el primer trimestre i el pes en néixer en grams.

library(MASS)
data("birthwt")
head(birthwt)
##    low age lwt race smoke ptl ht ui ftv  bwt
## 85   0  19 182    2     0   0  0  1   0 2523
## 86   0  33 155    3     0   0  0  0   3 2551
## 87   0  20 105    1     1   0  0  0   1 2557
## 88   0  21 108    1     1   0  0  1   2 2594
## 89   0  18 107    1     1   0  0  1   0 2600
## 91   0  21 124    3     0   0  0  0   0 2622

a) Quina és l’edat màxima de les mares del conjunt de dades?

Per obtenir un resum general del dataset, podem fer servir la funció summary.

summary(birthwt)
##       low              age             lwt             race      
##  Min.   :0.0000   Min.   :14.00   Min.   : 80.0   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:19.00   1st Qu.:110.0   1st Qu.:1.000  
##  Median :0.0000   Median :23.00   Median :121.0   Median :1.000  
##  Mean   :0.3122   Mean   :23.24   Mean   :129.8   Mean   :1.847  
##  3rd Qu.:1.0000   3rd Qu.:26.00   3rd Qu.:140.0   3rd Qu.:3.000  
##  Max.   :1.0000   Max.   :45.00   Max.   :250.0   Max.   :3.000  
##      smoke             ptl               ht                ui        
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.00000   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.00000   1st Qu.:0.0000  
##  Median :0.0000   Median :0.0000   Median :0.00000   Median :0.0000  
##  Mean   :0.3915   Mean   :0.1958   Mean   :0.06349   Mean   :0.1481  
##  3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.:0.00000   3rd Qu.:0.0000  
##  Max.   :1.0000   Max.   :3.0000   Max.   :1.00000   Max.   :1.0000  
##       ftv              bwt      
##  Min.   :0.0000   Min.   : 709  
##  1st Qu.:0.0000   1st Qu.:2414  
##  Median :0.0000   Median :2977  
##  Mean   :0.7937   Mean   :2945  
##  3rd Qu.:1.0000   3rd Qu.:3487  
##  Max.   :6.0000   Max.   :4990

També podem demanar directament per l’edat màxima amb la funció max.

max(birthwt$age)
## [1] 45

b) Quina és l’edat mínima de les mares del conjunt de dades?

Al resum generat amb summary podíem consultar l’edat mínima, però també podem demanar-la directament amb la funció min.

min(birthwt$age)
## [1] 14

c) Quin és el rang d’edat de les mares?

Podem demanar el rang amb la funció range (opció a) o calcular-lo manualment, restant del valor màxim el mínim (opció b).

range(birthwt$age)                      #opció a
## [1] 14 45
rang=max(birthwt$age)-min(birthwt$age)  #opció b
rang
## [1] 31

d) Fumava la mare que el seu nounat era el de menys pes?

En aquesta línia, estem seleccionant el cas de menor pes i preguntant si la condició smoke és 1, és a dir, si la mare era fumadora.

birthwt$smoke[birthwt$bwt==min(birthwt$bwt)]==1
## [1] TRUE

e) Quant va pesar el nounat la mare del qual tenia l’edat màxima?

Aquesta línia és similar a la de l’apartat anterior, però en comptes de preguntar per si una condició és certa, demanem que ens retorni el valor del pes del nadó la mare del qual era la de més edat.

birthwt$bwt[birthwt$age==max(birthwt$age)]
## [1] 4990

f) Feu una llista els pesos dels nounats, les mares dels quals visitaran menys de dues vegades el metge durant el primer trimestre.

En aquest apartat generarem un subset (f) que només contingui les dades de pes (bwt), i en concret només les dels casos amb un valor de ftv (nombre de visites mèdiques durant el primer trimestre) menor a 2.

f <- subset (birthwt$bwt, birthwt$ftv<2)
f
##   [1] 2523 2557 2600 2622 2637 2637 2663 2665 2722 2733 2751 2769 2769 2778 2807
##  [16] 2821 2836 2863 2877 2906 2920 2920 2920 2948 2948 2977 2977 2922 3033 3062
##  [31] 3062 3062 3062 3090 3090 3100 3104 3132 3175 3175 3203 3203 3203 3225 3225
##  [46] 3232 3234 3260 3274 3317 3317 3331 3374 3374 3402 3416 3444 3459 3460 3473
##  [61] 3544 3487 3544 3572 3572 3586 3600 3614 3614 3629 3637 3643 3651 3651 3651
##  [76] 3651 3699 3728 3756 3770 3770 3770 3790 3799 3827 3884 3912 3940 3941 3941
##  [91] 3969 3997 3997 4054 4054 4111 4174 4238 4593 4990  709 1135 1330 1474 1588
## [106] 1588 1701 1729 1790 1818 1885 1893 1899 1928 1936 1970 2055 2055 2084 2084
## [121] 2100 2125 2187 2187 2211 2225 2240 2240 2282 2296 2296 2325 2353 2353 2367
## [136] 2381 2381 2381 2410 2410 2410 2424 2442 2466 2466 2495 2495