Eu tenho um aviso múltiplo persistente de "coluna desconhecida" para todos os tipos de comandos (por exemplo, str (x) para instalar atualizações em pacotes) e não tenho certeza de como depurar isso ou corrigi-lo.
O aviso "coluna desconhecida" está claramente relacionado a uma variável em um tbl_df que eu renomeei, mas o aviso aparece em todos os tipos de comandos aparentemente não relacionados ao tbl_df (por exemplo, instalando atualizações em um pacote, str (x) em que x é simplesmente um vetor de caractere).
FACEBOOK.1
uma coluna em um dos seus data.frames e você a chama emdf$FACEBOOK.1
algum lugar no seu script R? Meu humilde palpite é que este é um erro notibble
pacote apresentado na v1.1: blog.rstudio.org/2016/07/05/05/tibble-1-1 . Vocêtibble
carregou explicitamente?Respostas:
Esse é um problema com a ferramenta Diagnóstico no RStudio (a ferramenta que mostra avisos e possíveis erros no seu código). Foi parcialmente corrigido nesse commit no RStudio v1.1.103 ou posterior por @ kevin-ushey . A correção é parcial, porque os avisos ainda aparecem (embora com menos frequência). Esse problema foi relatado com um exemplo reproduzível em https://github.com/rstudio/rstudio/issues/7372 e foi corrigido na solicitação pull do RStudio v1.4 (a ser lançada)
Existem várias soluções alternativas disponíveis, escolha a solução que você prefere:
Desative o diagnóstico de código para todos os arquivos em Preferências / Código / Diagnóstico
Desative todos os diagnósticos para um arquivo específico:
Adicione no início do (s) arquivo (s) aberto (s):
Em seguida, salve os arquivos e os avisos devem parar de aparecer.
Desative o diagnóstico para as variáveis que causam o aviso
Adicione no início do (s) arquivo (s) aberto (s):
Em seguida, salve os arquivos e os avisos devem parar de aparecer.
Os avisos aparecem porque a ferramenta de diagnóstico no RStudio analisa o código-fonte para detectar erros e, quando executa as verificações de diagnóstico, acessa colunas na sua ripa que não foram inicializadas, fornecendo o aviso que vemos. Os avisos não aparecem porque você executa coisas não relacionadas, eles aparecem quando os diagnósticos do RStudio são executados (quando um arquivo é salvo, depois modificado, quando você executa algo ...).
fonte
Tenho encontrado o mesmo problema e, embora não saiba por que isso ocorre, fui capaz de identificar quando ocorreu e, assim, impedir que isso acontecesse.
O problema parece estar com a adição de uma nova coluna, derivada da indexação, em um quadro de dados R básico vs. em um quadro de dados tibble. Veja este exemplo, onde você adiciona uma nova coluna (
age
) a um quadro de dados R base:Isso funciona sem retornar um aviso. Mas quando o mesmo é feito com um petisco, ele lança um aviso (e consequentemente, acho que está causando o estranho, aparentemente não provocado, problema de aviso múltiplo):
Certamente existem maneiras melhores de evitar isso, mas descobri que primeiro criar um vetor de
NA
s faz o trabalho:fonte
tbl_df
parece ser necessário para produzir os avisos, mas não tenho certeza de que seja suficiente. Ou seja, acho que esse aviso pode surgir quandotbl_df
s são usados em conjunto com funções de outros pacotes tidyverse (por exemplo, tidyr, dplyr). Pequeno preço a pagar por um pacote tão crítico de pacotes, mas estranho / irritante no entanto.NA
s funcionou para mim! (RStudio versão 1.1.456, versão R 3.5.1)NA
, as datas preenchidas posteriormente serão convertidas para o tipo numérico.as.Date(NA_character_)
dáNA
com classeDate
.Eu enfrentei esse problema ao usar o pacote "dplyr".
Para aqueles que enfrentam esse problema depois de usar a função "group_by" na biblioteca "dplyr":
Descobri que desagrupar as variáveis resolve o problema de aviso da coluna desconhecida. Às vezes, tive que percorrer o desagrupamento várias vezes até que o problema fosse resolvido.
fonte
A conversão da classe em
data.frame
resolveu o problema para mim:Emprestou o script parcial de @adts
fonte
Warning message: Unknown or uninitialised column: 'bad_column'
Eu tive esse problema ao lidar com funções de rabisco e lapply juntos. A tagarelice parecia salvar as coisas como uma lista dentro do quadro de dados.
Eu o resolvi usando unlist antes de adicionar os resultados de uma função lapply ao tibble.
fonte
Também me deparei com esse problema, exceto através de uma ripa criada usando um bloco dyplyr. Aqui está uma pequena modificação do código do sabre para mostrar como cheguei ao mesmo erro.
fonte
Digamos que eu queira selecionar a (s) seguinte (s) coluna (s)
Para mim, o seguinte deu o aviso:
Enquanto isso funcionou como esperado, embora, até onde eu saiba
dplyr
, isso deva ser idêntico.fonte
Recebo esses avisos quando renomeio uma coluna usando
dplyr::rename
depois de lê-la usando oreadr
pacote.O nome antigo da coluna não é renomeado no
spec
atributo Portanto, remover ospec
atributo faz com que os avisos desapareçam. Também é uma boa idéia remover a classe "spec_tbl_df".fonte