# esaminiamo i dati:
readLines("http://macosa.dima.unige.it/om/prg/r/battit2.txt",n=11)
[1] "# battiti prima di eventuale corsa di 1 min"
[2] "# battiti dopo"
[3] "# fatta corsa (1 si`;0 no; a seconda di esito di lancio moneta)"
[4] "# fumatore (1 si`;0 no)"
[5] "# sesso (1 M; 2 F)"
[6] "# altezza"
[7] "# peso"
[8] "# attivita` fisica (0 nulla;1 poca;2 media; 3 molta)"
[9] " BatPrima BatDopo Corsa Fumo Sesso Alt Peso Fis"
[10] "01 64 88 1 0 1 168 64 2"
[11] "02 58 70 1 0 1 183 66 2"
# e' una tabella; carichiamola (poiche' la righe da saltare iniziano
# con # posso evitare di mettere skip=8):
dati <- read.table("http://macosa.dima.unige.it/om/prg/r/battit2.txt")
# esaminiamone sinteticamente i dati
str(dati)
'data.frame': 92 obs. of 8 variables:
$ BatPrima: int 64 58 62 66 64 74 84 68 62 76 ...
$ BatDopo : int 88 70 76 78 80 84 84 72 75 118 ...
$ Corsa : int 1 1 1 1 1 1 1 1 1 1 ...
$ Fumo : int 0 0 1 1 0 0 0 0 0 0 ...
$ Sesso : int 1 1 1 1 1 1 1 1 1 1 ...
$ Alt : int 168 183 186 184 176 184 184 188 184 181 ...
$ Peso : int 64 66 73 86 70 75 68 86 88 63 ...
$ Fis : int 2 2 3 1 2 1 3 2 2 2 ...
# estraiamo la tabella costituita dalle prime tre colonne
cc <- dati[1:3]; summary(cc)
BatPrima BatDopo Corsa
Min. : 48.00 Min. : 50 Min. :0.0000
1st Qu.: 64.00 1st Qu.: 68 1st Qu.:0.0000
Median : 71.00 Median : 76 Median :0.0000
Mean : 72.87 Mean : 80 Mean :0.3804
3rd Qu.: 80.00 3rd Qu.: 85 3rd Qu.:1.0000
Max. :100.00 Max. :140 Max. :1.0000
# estraiamo poi quella di chi ha fatto la corsa:
cc1 <- subset(cc, cc$Corsa==1); summary(cc1)
BatPrima BatDopo Corsa
Min. : 58.0 Min. : 58.00 Min. :1
1st Qu.: 65.0 1st Qu.: 76.00 1st Qu.:1
Median : 70.0 Median : 88.00 Median :1
Mean : 73.6 Mean : 92.51 Mean :1
3rd Qu.: 80.0 3rd Qu.:105.00 3rd Qu.:1
Max. :100.0 Max. :140.00 Max. :1
# e quella di chi non l'ha fatta:
cc2 <- subset(cc, cc$Corsa==0); summary(cc2)
BatPrima BatDopo Corsa
Min. :48.00 Min. :50.00 Min. :0
1st Qu.:64.00 1st Qu.:66.00 1st Qu.:0
Median :72.00 Median :70.00 Median :0
Mean :72.42 Mean :72.32 Mean :0
3rd Qu.:80.00 3rd Qu.:78.00 3rd Qu.:0
Max. :94.00 Max. :94.00 Max. :0
# Esistono vari altri modi di estrarre sottotabelle. Es.:
dd <- dati[c(-1,-2,-3,-4)]; summary(dd)
Sesso Alt Peso Fis
Min. :1.00 Min. :154.0 Min. :43.00 Min. :0.000
1st Qu.:1.00 1st Qu.:167.8 1st Qu.:57.00 1st Qu.:2.000
Median :1.00 Median :175.0 Median :66.00 Median :2.000
Mean :1.38 Mean :174.4 Mean :65.84 Mean :2.109
3rd Qu.:2.00 3rd Qu.:183.0 3rd Qu.:70.25 3rd Qu.:2.000
Max. :2.00 Max. :190.0 Max. :97.00 Max. :3.000
# altro modo di togliere le prime 4 colonne
dd <- dati[c(-1:-4)]; summary(dd)
Sesso Alt Peso Fis
Min. :1.00 Min. :154.0 Min. :43.00 Min. :0.000
1st Qu.:1.00 1st Qu.:167.8 1st Qu.:57.00 1st Qu.:2.000
Median :1.00 Median :175.0 Median :66.00 Median :2.000
Mean :1.38 Mean :174.4 Mean :65.84 Mean :2.109
3rd Qu.:2.00 3rd Qu.:183.0 3rd Qu.:70.25 3rd Qu.:2.000
Max. :2.00 Max. :190.0 Max. :97.00 Max. :3.000
# Più in generale, come estrarre la sottotabella costituita dagli
# elementi che sono nelle righe 2,3,4 e nelle colonne 1,3,7
dati[c(2,3,4),c(1,3,7)]
BatPrima Corsa Peso
02 58 1 66
03 62 1 73
04 66 1 86