2.3 Data frames

El data.frame (marco o tabla de datos) es el objeto más habitual para el almacenamiento de conjuntos de datos. En este tipo de objetos cada individuo de la muestra se corresponde con una fila y cada una de las variables con una columna. Para la creación de estas estructuras se utiliza la función data.frame().

Este tipo de estructuras son en apariencia muy similares a las matrices, con la ventaja de que permiten que los valores de las distintas columnas sean de tipos diferentes. Por ejemplo, supongamos que tenemos registrados los siguientes valores

Producto <- c("Zumo", "Queso", "Yogourt")
Seccion <- c("Bebidas", "Lácteos", "Lácteos")
Unidades <- c(2, 1, 10)

Los valores anteriores se podrían guardar en una única matriz

x <- cbind(Producto, Seccion, Unidades)
class(x)
## [1] "matrix" "array"
x
##      Producto  Seccion   Unidades
## [1,] "Zumo"    "Bebidas" "2"     
## [2,] "Queso"   "Lácteos" "1"     
## [3,] "Yogourt" "Lácteos" "10"

Sin embargo, el resultado anterior no es satisfactorio ya que todos los valores se han transformado en caracteres. Una solución mejor es utilizar un data.frame, con lo cual se mantiene el tipo original de las variables.

lista.compra <- data.frame(Producto, Seccion, Unidades)
class(lista.compra)
## [1] "data.frame"
lista.compra
##   Producto Seccion Unidades
## 1     Zumo Bebidas        2
## 2    Queso Lácteos        1
## 3  Yogourt Lácteos       10

A continuación se muestran ejemplos que ilustran la manera de acceder a los valores de un data.frame.

lista.compra$Unidades
## [1]  2  1 10
lista.compra[ ,3]  # de manera equivalente
## [1]  2  1 10
lista.compra$Seccion
## [1] "Bebidas" "Lácteos" "Lácteos"
lista.compra$Unidades[1:2]  # primeros dos valores de Unidades
## [1] 2 1
lista.compra[2,]  # segunda fila
##   Producto Seccion Unidades
## 2    Queso Lácteos        1

La función summary() permite hacer un resumen estadístico de las variables (columnas) del data.frame.

summary(lista.compra)
##    Producto           Seccion             Unidades     
##  Length:3           Length:3           Min.   : 1.000  
##  Class :character   Class :character   1st Qu.: 1.500  
##  Mode  :character   Mode  :character   Median : 2.000  
##                                        Mean   : 4.333  
##                                        3rd Qu.: 6.000  
##                                        Max.   :10.000