5.1 Algunos usos de las listas

Las listas son objetos de R que ya hemos usado antes implícitamente. Por ejemplo, iris, como todas las tablas en R, es una lista.

is.list(iris)
## [1] TRUE

Es conveniente recordar que en R las tablas son esencialmente listas de vectores de la misma longitud19. Aunque el anterior es el principal uso de las listas en R, también se emplean como contenedores genéricos de información. Por ejemplo, en la sección anterior hemos construido un modelo,

datos <- as.data.frame(UCBAdmissions)
datos$Admit <- datos$Admit == "Admitted"
modelo.con.dept <- glm(Admit ~ Gender + Dept,
                       data = datos, weights = Freq,
                       family = binomial())

La representación interna en R de este modelo es una lista:

is.list(modelo.con.dept)
## [1] TRUE
length(modelo.con.dept)
## [1] 30

Explora modelo.con.dept con las funciones names y str.

En efecto, un modelo estadístico en R es una colección de objetos diversos (residuos, coeficientes, etc. representados en forma de valores atómicos, vectores o tablas) que lo resumen. Las listas son estructuras de datos que encapsulan toda esa información heterogénea.

Pero una lista también puede contener otras listas que, a su vez, pudieran contener otras, etc. Es decir, las listas permiten almacenar árboles de información. Los árboles de información son cada vez más importantes en las aplicaciones. De hecho, los ficheros .xml o .json disponen su información en árboles, como muestra el siguiente ejemplo de un fichero .json muy simple simple:

{
    "id": "0001",
    "type": "tarta",
    "name": "Tarta de zanahoria",
    "image":
        {
            "url": "images/tarta0001.jpg",
            "width": 200,
            "height": 200
        },
    "thumbnail":
        {
            "url": "images/thumbnails/tarta0001.jpg",
            "width": 32,
            "height": 32
        }
}

El fichero anterior tiene cinco elementos, dos de los cuales, image y thumbnail, contienen a su vez sendas listas de tres elementos (con identificadores url, width y height). Gráficamente, el fichero puede describirse así:

TODO: GRÁFICO DE UN ÁRBOL DE INFORMACIÓN QUE REPRESENTE EL ANTERIOR.

La representación natural en R de esta información es una lista con cinco elementos, dos de los cuales serán sublistas con tres elementos.

Guarda la salida del test de Student de la sección anterior como un objeto. ¿De qué clase es? Examínalo con las funciones anteriores.


  1. En esto, R difiere de otras herramientas (p.e., SAS) que consideran las tablas una lista de filas.