Como Reconhecer e corrigir erros Lista em R

Embora as listas ajudar a manter os dados em conjunto e vêm em muito útil quando você está processando vários conjuntos de dados em R, podem causar alguns problemas também.

Em primeiro lugar, você pode facilmente esquecer que alguma função retorna uma lista em vez de um vetor. Por exemplo, muitos programadores esquecer que strsplit () retorna uma lista em vez de um vetor. Então, se você quiser a segunda palavra de uma frase, o código a seguir não retorna um erro, mas não lhe dá a resposta certa ou:

> Strsplit ( 'isto é uma sentença', '') [2] [[1]] NULL

Neste exemplo, strsplit () retorna uma lista com um elemento, o vetor com as palavras da frase:

> Strsplit ( 'isto é uma sentença', '') [[1]] [1] "" "esta é" "a" "sentença"

Para aceder a este vector, primeiro você tem que selecionar o elemento desejado da lista. Só então você pode olhar para o segundo valor usando os índices vetoriais, como este:

> Strsplit ( 'isto é uma sentença', '') [[1]] [2] [1] "é"

Mesmo o mecanismo de indexação em si pode causar erros deste tipo. Por exemplo, você tem alguns nomes de clientes e que pretende adicionar um ponto entre o primeiro e último nomes. Então, primeiro, você dividi-los como este:

> cliente lt; - c ( 'Johan Delong', 'Marie Petit')> namesplit lt; - strsplit (cliente, '')

Você deseja colar o segundo nome em conjunto com um ponto no meio, então você precisa selecionar o segundo elemento da lista. Se você usar colchetes simples, você obtém o seguinte:

> Colar (namesplit [2], fechar = '.') [1] "c (" Marie ", " Petit ")"

Isso não é o que você quer em tudo. Lembre-se que você pode usar ambos os suportes individuais e colchetes duplos para selecionar elementos de uma lista, mas quando você usa colchetes simples, você sempre terá uma lista retornada. Assim, para obter o resultado correto, você precisa de suportes duplos, como este:

> Colar (namesplit [[2]], colapso = '.') [1] "Marie.Petit"

Observe que R nunca deu um sinal - nem mesmo um aviso - que algo estava errado. Então, se você notar listas onde você não esperaria-los (ou não notá-los onde você espera deles), verifique seus suportes.

menu