J'ai un avertissement multiple persistant de "colonne inconnue" pour tous les types de commandes (par exemple, str (x) pour installer les mises à jour sur les paquets), et je ne sais pas comment déboguer ceci ou le réparer.
L'avertissement "colonne inconnue" est clairement lié à une variable dans un tbl_df que j'ai renommé, mais l'avertissement apparaît dans toutes sortes de commandes apparemment sans rapport avec le tbl_df (par exemple, l'installation de mises à jour sur un paquet, str (x) où x est simplement un vecteur de caractères).
FACEBOOK.1
colonne est-elle dans l'un de vos data.frames et l'appelez-vousdf$FACEBOOK.1
quelque part dans votre script R? Mon humble avis est qu'il s'agit d'une erreur dans letibble
package introduit dans la v1.1: blog.rstudio.org/2016/07/05/tibble-1-1 . Avez-voustibble
explicitement chargé?Réponses:
Il s'agit d'un problème avec l'outil de diagnostic de RStudio (l'outil qui affiche les avertissements et les erreurs possibles dans votre code). Il a été partiellement corrigé à ce commit dans RStudio v1.1.103 ou version ultérieure par @ kevin-ushey . Le correctif est partiel, car les avertissements apparaissent toujours (mais avec moins de fréquence). Ce problème a été signalé avec un exemple reproductible sur https://github.com/rstudio/rstudio/issues/7372 et a été corrigé sur la requête d'extraction RStudio v1.4 (à publier)
Il existe plusieurs solutions de contournement disponibles, choisissez la solution que vous préférez:
Désactivez les diagnostics de code pour tous les fichiers dans Préférences / Code / Diagnostics
Désactivez tous les diagnostics pour un fichier spécifique:
Ajoutez au début du (des) fichier (s) ouvert (s):
Ensuite, enregistrez les fichiers et les avertissements devraient cesser d'apparaître.
Désactivez les diagnostics pour les variables à l'origine de l'avertissement
Ajoutez au début du (des) fichier (s) ouvert (s):
Ensuite, enregistrez les fichiers et les avertissements devraient cesser d'apparaître.
Les avertissements apparaissent car l'outil de diagnostic de RStudio analyse le code source pour détecter les erreurs et lorsqu'il effectue les vérifications de diagnostic, il accède aux colonnes de votre tibble qui ne sont pas initialisées, donnant l'avertissement que nous voyons. Les avertissements n'apparaissent pas parce que vous exécutez des choses sans rapport, ils apparaissent lorsque les diagnostics RStudio sont exécutés (lorsqu'un fichier est enregistré, puis modifié, lorsque vous exécutez quelque chose ...).
la source
J'ai rencontré le même problème, et bien que je ne sache pas pourquoi il se produit, j'ai pu déterminer quand cela se produit, et ainsi l'empêcher de se produire.
Le problème semble être l'ajout d'une nouvelle colonne, dérivée de l'indexation, dans une trame de données de base R par rapport à une trame de données tibble. Prenez cet exemple, où vous ajoutez une nouvelle colonne (
age
) à un bloc de données de base R:Cela fonctionne sans renvoyer un avertissement. Mais lorsque la même chose est faite avec un tibble, cela lance un avertissement (et par conséquent, je pense que cela cause le problème d'avertissement multiple étrange, apparemment non provoqué):
Il y a sûrement de meilleures façons d'éviter cela, mais j'ai trouvé que créer d'abord un vecteur de
NA
s fait l'affaire:la source
tbl_df
semble être nécessaire pour produire les avertissements, mais je ne suis pas sûr que ce soit suffisant. Autrement dit, je pense que cet avertissement peut apparaître lorsquetbl_df
s est utilisé en conjonction avec des fonctions d'autres packages tidyverse (par exemple, tidyr, dplyr). Petit prix à payer pour une suite aussi critique de paquets, mais néanmoins étrange / ennuyeux.NA
s a fonctionné pour moi! (RStudio Version 1.1.456, R version 3.5.1)NA
, les dates qui sont remplies plus tard seront converties en type numérique.as.Date(NA_character_)
donneNA
avec classeDate
.J'ai rencontré ce problème lors de l'utilisation du package "dplyr".
Pour ceux qui font face à ce problème après avoir utilisé la fonction "group_by" dans la bibliothèque "dplyr":
J'ai trouvé que le dégroupage des variables résout le problème d'avertissement de colonne inconnue. Parfois, j'ai dû parcourir plusieurs fois le dégroupage jusqu'à ce que le problème soit résolu.
la source
La conversion de la classe en a
data.frame
résolu le problème pour moi:J'ai emprunté le script partiel à @adts
la source
Warning message: Unknown or uninitialised column: 'bad_column'
J'ai eu ce problème en traitant ensemble les fonctions tibble et lapply. Le tibble semblait enregistrer les choses sous forme de liste à l'intérieur du dataframe.
Je l'ai résolu en utilisant unlist avant d'ajouter les résultats d'une fonction lapply au tibble.
la source
J'ai rencontré ce problème aussi, sauf à travers un tibble créé à l'aide d'un bloc dyplyr. Voici une légère modification du code de sabre pour montrer comment je suis arrivé à la même erreur.
la source
Disons que je voulais sélectionner la (les) colonne (s) suivante (s)
Pour moi, ce qui suit a donné l'avertissement:
Bien que cela ait fonctionné comme prévu, bien que, pour autant que je sache
dplyr
, cela devrait être identique.la source
J'obtiens ces avertissements lorsque je renomme une colonne en utilisant
dplyr::rename
après l'avoir lu en utilisant lereadr
package.L'ancien nom de la colonne n'est pas renommé dans l'
spec
attribut. Donc, la suppression de l'spec
attribut fait disparaître les avertissements. Supprimer également la classe "spec_tbl_df" semble être une bonne idée.la source