Como ler a saída de str () para listas em R

Muitas pessoas que começam com R ficam confusas com listas no início. Não há realmente nenhuma necessidade para isso - uma lista tem apenas duas partes importantes: os componentes e os nomes. E no caso de listas sem nome, você nem precisa se preocupar com o último. Mas se você olhar para a estrutura da baskets.list na seguinte saída, você pode ver porque muitas vezes as pessoas se coíbe de listas.

> Str (baskets.list) Lista de 2 $: num [1: 2, 1: 6] 12 5 4 4 5 2 6 4 9 12 .....- attr (*, # 147 dimnames # 148 -) = Lista de 2 .. .. $: chr [1: 2] # 147 Granny # 148- # 147 Geraldine # 148- .. .. $: chr [1: 6] # 147-1st # 148- # 147-2nd # 148- # 147-3rd # 148- # 147-4th # 148- ... $: chr # 147-2010-2011 # 148-

Isso realmente parece com algum código obscuro usado pelos serviços de inteligência secretas durante a Segunda Guerra Mundial. Ainda assim, quando você sabe como lê-lo, é muito fácil de ler. Então, vamos dividir a saída para ver o que está acontecendo aqui:

  • A primeira linha simplesmente diz que baskets.list é uma lista com dois componentes.

  • A segunda linha contém uma $, que indica o início do primeiro componente. O resto da linha que você deve ser capaz de ler agora: Diz-lhe que este primeiro componente é uma matriz numérica com duas linhas e seis colunas.

  • A terceira linha é precedida pela .., o que indica que esta linha, também pertence ao primeiro componente. Se você olhar para a saída do str (baskets.team) você vê esta linha e os dois seguintes também. R mantém os nomes de linhas e colunas de uma matriz de um atributo denominado dimnames. Por enquanto, você só tem que lembrar que um atributo é um pouco mais de informação que pode ser anexado a quase qualquer objeto em R.

  • o dimnames atributo é por si só mais uma vez uma lista.

  • A quarta e quinta linhas de dizer-lhe que esta lista contém dois componentes: um vetor de caracteres de comprimento 2 e um de comprimento 6. R usa a .. apenas como um espaço reservado, para que você possa ler a partir do recuo quais linhas pertencem a qual componente.

  • Finalmente, a sexta linha começa novamente com uma $ e dá-lhe a estrutura do segundo componente - neste caso, um vector de caracteres com apenas um valor.

Se você olhar para a saída do str (baskets.nlist), você tem essencialmente a mesma coisa. A única diferença é que R agora coloca o nome de cada direito componente após a $.

Em muitos casos, a olhar para a estrutura da saída de uma função pode dar-lhe um monte de informações sobre quais informações estão contidas no objeto. Muitas vezes, esses objetos são listas, eo pedaço de informação que você está procurando está enterrado em algum lugar nessa lista.

menu