Dlaczego podczas odczytywania ramki danych otrzymuję X. w nazwach kolumn?

Zapytałem apytanie o to kilka miesięcy temui pomyślałem, że odpowiedź rozwiązała mój problem, ale ponownie natknąłem się na problem i rozwiązanie nie działało dla mnie.

Importuję plik CSV:

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

Oto struktura ramki danych:

<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>

Jeśli uruchomięlength polecenie w pierwszej kolumnie, OrderID, otrzymuję to:

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

Jeśli uruchomięlength na OrderDate zwraca poprawnie:

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

To jest kopia / wklejhead zCSV.

<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>

Teraz, jeśli ponownie uruchomięread.csv, ale wyjmijcheck.names opcja, pierwsza kolumnadataframe teraz ma X. na początku nazwy.

<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>

To działa poprawnie.

Moje pytanie brzmi: dlaczegoR dodać X. do początku nazwy pierwszej kolumny? Jak widać z pliku CSV, nie ma znaków specjalnych. To powinno być proste obciążenie. Dodawaniecheck.names, podczas gdy importuje nazwę z pliku CSV, spowoduje, że dane nie zostaną poprawnie załadowane, aby przeprowadzić analizę.

Co mogę zrobić, aby to naprawić?

Uwaga dodatkowa: zdaję sobie sprawę, że to nieistotne - jestem po prostu bardziej sfrustrowany tym, że myślę, że ładuję poprawnie, ale nie uzyskuję oczekiwanego rezultatu. Mogę zmienić nazwę kolumny używająccolnames(orders)[1] <- "OrderID", ale nadal chcesz wiedzieć, dlaczego nie ładuje się poprawnie.

questionAnswers(4)

yourAnswerToTheQuestion