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.