3.9 Listas

Chegamos ao último tópico antes de voltarmos aos data frames: as listas.

Listas são objetos muito importantes dentro do R. Primeiro porque todo data frame é uma lista. Segundo porque elas são bem parecidas com vetores, mas com uma diferença essencial: você pode misturar diferentes classes de objetos dentro dela.

Para criar uma lista, rodamos list(valor1, valor2, valor3).

Veja que não houve coerção. Ainda temos um valor número, um texto e um valor lógico dentro da lista.

O subsetting de listas é um pouco diferente do que o de vetores. Isso porque cada elemento de uma lista também é uma lista. Veja o que acontece se tentarmos usar [] para pegar um elemento de uma lista.

O R nos retorna uma lista com apenas aquele elemento. Se quisermos o elemento de fato dentro de cada posição, precisamos usar dois colchetes:

Cada elemento de uma lista ser uma lista é importante pois isso nos permite colocar vetores de tamanhos diferentes em cada posição. Isso faz das listas uma estrutura bem flexível para guardar dados.

É muito comum darmos nomes para cada posição de uma lista.

Agora, dentro da lista, o valor Ana Silva, por exemplo, está sendo atribuído ao nome cliente. Esse nome só existirá dentro da lista.

Um detalhe importante: os iguais utilizados nas atribuições dos nomes dentro da lista não podem ser substituídos por <-.

Quando as posições de uma lista tem nome, podemos acessar seus valores diretamente utilizando o operador $.

Repare que o R devolve o valor dentro de cada posição, e não uma lista.

Isto implica que, nesse exemplo, dados_cliente$cliente é equivalente a dados_cliente[[1]].

Conforme ficamos mais e mais proficientes na linguagem R, as listas passam a ficar cada vez mais frequentes. Voltaremos a falar delas diversas vezes nos próximos capítulos, em especial no Capítulo 9.


Curso-R