Ich habe eine anhaltende mehrfache Warnung vor "unbekannter Spalte" für alle Arten von Befehlen (z. B. str (x) zum Installieren von Updates für Pakete) und bin mir nicht sicher, wie ich dies debuggen oder beheben soll.
Die Warnung "unbekannte Spalte" bezieht sich eindeutig auf eine Variable in einem tbl_df, die ich umbenannt habe, aber die Warnung wird in allen Arten von Befehlen angezeigt, die scheinbar nichts mit dem tbl_df zu tun haben (z. B. Installieren von Updates auf einem Paket, str (x), wobei x ist einfach ein Zeichenvektor).
FACEBOOK.1
eine Spalte in einem Ihrer data.frames und rufen Sie siedf$FACEBOOK.1
irgendwo in Ihrem R-Skript auf? Meine bescheidene Vermutung ist, dass dies ein Fehler in demtibble
in Version 1.1 eingeführten Paket ist: blog.rstudio.org/2016/07/05/tibble-1-1 . Haben Sietibble
explizit geladen?Antworten:
Dies ist ein Problem mit dem Diagnosetool in RStudio (dem Tool, das Warnungen und mögliche Fehler in Ihrem Code anzeigt). Es wurde teilweise bei diesem Commit in RStudio v1.1.103 oder höher von @ kevin-ushey behoben . Die Korrektur ist teilweise, da die Warnungen weiterhin angezeigt werden (wenn auch mit geringerer Häufigkeit).
Es stehen verschiedene Problemumgehungen zur Verfügung. Wählen Sie die gewünschte Lösung aus:
Deaktivieren Sie alle Diagnosen für eine bestimmte Datei:
Fügen Sie am Anfang der geöffneten Datei (en) hinzu:
Speichern Sie dann die Dateien und die Warnungen sollten nicht mehr angezeigt werden.
Deaktivieren Sie die Diagnose für die Variablen, die die Warnung verursachen
Fügen Sie am Anfang der geöffneten Datei (en) hinzu:
Speichern Sie dann die Dateien und die Warnungen sollten nicht mehr angezeigt werden.
Die Warnungen werden angezeigt, weil das Diagnosetool in RStudio den Quellcode analysiert, um Fehler zu erkennen. Wenn es die Diagnoseprüfungen durchführt, greift es auf Spalten in Ihrer Tabelle zu, die nicht initialisiert sind, und gibt die angezeigte Warnung aus. Die Warnungen werden nicht angezeigt, weil Sie nicht verwandte Dinge ausführen. Sie werden angezeigt, wenn die RStudio-Diagnose ausgeführt wird (wenn eine Datei gespeichert und dann geändert wird, wenn Sie etwas ausführen ...).
quelle
Ich bin auf das gleiche Problem gestoßen, und obwohl ich nicht weiß, warum es auftritt, konnte ich feststellen, wann es auftritt, und so verhindern , dass es auftritt.
Das Problem scheint darin zu liegen, eine neue Spalte, die aus der Indizierung abgeleitet wurde, in einem Basis-R-Datenrahmen im Vergleich zu einem Tibble-Datenrahmen hinzuzufügen. Nehmen Sie dieses Beispiel, in dem Sie
age
einem Basis-R- Datenrahmen eine neue Spalte ( ) hinzufügen :Das funktioniert ohne Rückmeldung. Aber wenn dasselbe mit einem Tibble gemacht wird, wird eine Warnung ausgegeben (und folglich denke ich, dass das seltsame, scheinbar nicht provozierte Problem mit mehreren Warnungen verursacht wird):
Es gibt sicherlich bessere Möglichkeiten, dies zu vermeiden, aber ich habe festgestellt, dass das erste Erstellen eines Vektors von
NA
s die Aufgabe erfüllt:quelle
tbl_df
scheint notwendig zu sein, um die Warnungen zu erzeugen, aber ich bin nicht sicher, ob es ausreicht. Das heißt, ich denke, diese Warnung kann auftreten, wenntbl_df
s in Verbindung mit Funktionen aus anderen tidyverse-Paketen (z. B. tidyr, dplyr) verwendet wird. Kleiner Preis für solch eine kritische Suite von Paketen, aber trotzdem seltsam / nervig.NA
s hat für mich funktioniert! (RStudio Version 1.1.456, R Version 3.5.1)NA
, werden später ausgefüllte Daten in den numerischen Typ konvertiert.as.Date(NA_character_)
gibtNA
mit KlasseDate
.Ich habe dieses Problem bei der Verwendung des "dplyr" -Pakets festgestellt.
Für diejenigen, die nach Verwendung der Funktion "group_by" in der Bibliothek "dplyr" mit diesem Problem konfrontiert sind:
Ich habe festgestellt, dass das Aufheben der Gruppierung der Variablen das Problem der unbekannten Spaltenwarnung löst. Manchmal musste ich die Aufhebung der Gruppierung mehrmals durchlaufen, bis das Problem behoben war.
quelle
Die Umwandlung der Klasse in
data.frame
löste das Problem für mich:Das Teil-Skript von @adts ausgeliehen
quelle
Warning message: Unknown or uninitialised column: 'bad_column'
Ich hatte dieses Problem beim gemeinsamen Umgang mit Tibble- und Lapply-Funktionen. Das Tibble schien Dinge als Liste im Datenrahmen zu speichern.
Ich habe es gelöst, indem ich unlist verwendet habe, bevor ich die Ergebnisse einer Lapply-Funktion zum Tibble hinzugefügt habe.
quelle
Ich bin auch auf dieses Problem gestoßen, außer durch ein Tibble, das mit einem Dyplyr-Block erstellt wurde. Hier ist eine geringfügige Änderung des Sabre-Codes, um zu zeigen, wie ich zu demselben Fehler gekommen bin.
quelle
Angenommen, ich wollte die folgenden Spalten auswählen.
Für mich gab folgendes die Warnung:
Dies funktionierte zwar wie erwartet,
dplyr
sollte aber meines Wissens identisch sein.quelle
Ich erhalte diese Warnungen, wenn ich eine Spalte mit umbenenne,
dplyr::rename
nachdem ich sie mit demreadr
Paket gelesen habe .Der alte Name der Spalte wird im
spec
Attribut nicht umbenannt . Wenn Sie also dasspec
Attribut entfernen , verschwinden die Warnungen. Auch das Entfernen der Klasse "spec_tbl_df" scheint eine gute Idee zu sein.quelle