Warum wird beim Lesen eines Datenrahmens in meinen Spaltennamen ein X angezeigt?

Ich fragte einFrage dazu vor ein paar Monaten, und ich dachte, die Antwort hätte mein Problem gelöst, aber ich bin erneut auf das Problem gestoßen und die Lösung hat bei mir nicht funktioniert.

Ich importiere eine CSV:

<code>orders <- read.csv("<file_location>", sep=",", header=T, check.names = FALSE)
</code>

Hier ist die Struktur des Datenrahmens:

<code>str(orders)

'data.frame':   3331575 obs. of  2 variables:
 $ OrderID  : num  -2034590217 -2034590216 -2031892773 -2031892767 -2021008573 ...
 $ OrderDate: Factor w/ 402 levels "2010-10-01","2010-10-04",..: 263 263 269 268 301 300 300 300 300 300 ...
</code>

Wenn ich das laufen lasselength Befehl in der ersten Spalte, OrderID, bekomme ich das:

<code>length(orders$OrderID)
[1] 0
</code>

Wenn ich das laufen lasselength am OrderDate gibt es korrekt zurück:

<code>length(orders$OrderDate)
[1] 3331575
</code>

Dies ist ein Kopieren / Einfügen vonhead desCSV.

<code>OrderID,OrderDate
-2034590217,2011-10-14
-2034590216,2011-10-14
-2031892773,2011-10-24
-2031892767,2011-10-21
-2021008573,2011-12-08
-2021008572,2011-12-07
-2021008571,2011-12-07
-2021008570,2011-12-07
-2021008569,2011-12-07
</code>

Nun, wenn ich das nochmal laufen lasseread.csv, aber nimm das rauscheck.names Option, die erste Spalte derdataframe hat jetzt ein X am Anfang des Namens.

<code>orders2 <- read.csv("<file_location>", sep=",", header=T)

str(orders2)

'data.frame':   3331575 obs. of  2 variables:
 $ X.OrderID: num  -2034590217 -2034590216 -2031892773 -2031892767 -2021008573 ...
 $ OrderDate: Factor w/ 402 levels "2010-10-01","2010-10-04",..: 263 263 269 268 301 300 300 300 300 300 ...

length(orders$X.OrderID)
[1] 3331575
</code>

Das funktioniert einwandfrei.

Meine Frage ist warumR Fügen Sie am Anfang des ersten Spaltennamens ein X hinzu. Wie Sie der CSV-Datei entnehmen können, gibt es keine Sonderzeichen. Es sollte eine einfache Ladung sein. Hinzufügencheck.namesWährend der Name aus der CSV importiert wird, werden die Daten nicht korrekt geladen, sodass ich eine Analyse durchführen kann.

Was kann ich tun, um das zu beheben?

Randnotiz: Mir ist klar, dass es sich um eine Kleinigkeit handelt. Ich bin nur mehr frustriert darüber, dass ich denke, dass ich richtig lade, aber nicht das erwartete Ergebnis erhalte. Ich könnte die Spalte mit umbenennencolnames(orders)[1] <- "OrderID", möchte aber trotzdem wissen, warum es nicht richtig geladen wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage