Lectura de datos

Lee el conjunto de datos biom2003.dat, situado en http://gauss.inf.um.es/datos

biom <- read.table( "http://gauss.inf.um.es/datos/biom2003.dat",
                    sep = "", 
                    header = TRUE )

Se trata de datos biomĆ©tricos de estudiantes de la Licenciatura de BiologĆ­a, Murcia en el curso 2003–04:

¿Qué dimensiones tiene? ¿De qué tipo son sus variables?

dim( biom )
## [1] 98 10
str( biom )
## 'data.frame':    98 obs. of  10 variables:
##  $ Grupo  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Peso   : int  60 52 61 73 53 63 55 56 64 72 ...
##  $ Altura : int  163 166 172 181 172 169 170 169 180 178 ...
##  $ Pie    : int  37 37 39 43 39 40 38 42 41 43 ...
##  $ Hombros: int  41 37 39 50 39 37 43 40 41 43 ...
##  $ Brazos : int  68 70 69 78 72 66 74 70 78 80 ...
##  $ Caderas: int  95 87 91 101 89 96 97 90 101 97 ...
##  $ Sexo   : int  1 1 1 2 1 1 1 2 1 2 ...
##  $ Ojos   : int  1 2 2 2 1 2 2 2 1 1 ...
##  $ Tipo   : int  2 1 1 1 1 1 1 1 1 1 ...

En esta matriz de datos encontramos tres variables cualitativas que se tratan como cuantitativas: Sexo, Ojos y Tipo.

Transformación de los datos: códigos a factor

Realizaremos una transformación con ayuda de la función factor:

biom$Sexo <- factor( biom$Sexo, levels = c( 1, 2 ),
                     labels = c( "mujer", "hombre" ) )

biom$Ojos <- factor( biom$Ojos, levels = c( 1, 2 ),
                     labels = c( "oscuros", "claros" ) )

biom$Tipo <- factor( biom$Tipo, levels = c( 1, 2, 3 ),
                     labels = c( "atlƩtico", "delgado", "pesado" ) )

Comprobamos que tenemos los datos en el formato que querĆ­amos:

str( biom )
## 'data.frame':    98 obs. of  10 variables:
##  $ Grupo  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Peso   : int  60 52 61 73 53 63 55 56 64 72 ...
##  $ Altura : int  163 166 172 181 172 169 170 169 180 178 ...
##  $ Pie    : int  37 37 39 43 39 40 38 42 41 43 ...
##  $ Hombros: int  41 37 39 50 39 37 43 40 41 43 ...
##  $ Brazos : int  68 70 69 78 72 66 74 70 78 80 ...
##  $ Caderas: int  95 87 91 101 89 96 97 90 101 97 ...
##  $ Sexo   : Factor w/ 2 levels "mujer","hombre": 1 1 1 2 1 1 1 2 1 2 ...
##  $ Ojos   : Factor w/ 2 levels "oscuros","claros": 1 2 2 2 1 2 2 2 1 1 ...
##  $ Tipo   : Factor w/ 3 levels "atlƩtico","delgado",..: 2 1 1 1 1 1 1 1 1 1 ...

Llegado a este punto, podíamos pensar en guardar un conjunto de datos con las variables anotadas en un fichero .Rdata, de forma que a partir de ese momento podríamos trabajar directamente con con ese conjunto de datos, sin tener que realizar de nuevo la codificación de las variables.

save.image( "biom2003Anotado.RData" ) # guardar el conjunto de datos
load("biom2003Anotado.RData") # leer el conjunto de datos anotado

Representación grÔfica

Realiza un grƔfico etiquetado y titulado adecuadamente para las variables altura y caderas.

plot( biom$Altura , biom$Peso,
    main = "Altura vs caderas",
    xlab = "Altura",
    ylab = "Peso"
    ) 

Cambia el color y el tipo de punto

plot( biom$Altura ,  biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    pch = 20,
    col = "blue"
    ) 

Modifica el grƔfico anterior de forma que:

1) los colores los puntos sean de diferente color en función del sexo.

plot( biom$Altura ,  biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    pch = 20,
    col = as.integer( biom$Sexo) +1
    ) 

2) utiliza un símbolo diferente según la complexión corporal.

plot( biom$Altura ,  biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    pch = as.integer( biom$Tipo) +1
    ) 

3) se cumplan los dos puntos anteriores

plot( biom$Altura ,  biom$Peso,
    main = "Altura vs peso",
    xlab = "Altura",
    ylab = "Peso",
    col = as.integer( biom$Sexo) +1,
    pch = as.integer( biom$Tipo) +1
    ) 

Deja traza del tipo de sesión

sessionInfo()
## R version 3.4.3 (2017-11-30)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.4 LTS
## 
## Matrix products: default
## BLAS: /usr/lib/libblas/libblas.so.3.6.0
## LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
## 
## locale:
##  [1] LC_CTYPE=es_ES.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_ES.UTF-8        LC_COLLATE=es_ES.UTF-8    
##  [5] LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=es_ES.UTF-8   
##  [7] LC_PAPER=es_ES.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] compiler_3.4.3  backports_1.1.2 magrittr_1.5    rprojroot_1.3-2
##  [5] tools_3.4.3     htmltools_0.3.6 yaml_2.1.16     Rcpp_0.12.15   
##  [9] stringi_1.1.6   rmarkdown_1.8   knitr_1.18      stringr_1.2.0  
## [13] digest_0.6.14   evaluate_0.10.1