Я задал вопрос об этом несколько месяцев назад и думал, что ответ решил мою проблему, но я столкнулся с проблемой снова, и решение не сработало для меня.
Я импортирую CSV:
orders <- read.csv("", sep=",", header=T, check.names = FALSE)
Вот структура кадра данных:
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...
Если я запускаю команду length
для первого столбца, OrderID, я получаю это:
length(orders$OrderID)
[1] 0
Если я запускаю length
для OrderDate, он возвращает правильно:
length(orders$OrderDate)
[1] 3331575
Это копирование/вставка head
из CSV
.
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
Теперь, если я снова -запущу read.csv
, но уберу опцию check.names
, первый столбец dataframe
теперь будет иметь X. в начале имени.
orders2 <- read.csv("", 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
Это работает правильно.
Мой вопрос: почему R
добавляет X в начало имени первого столбца? Как видно из CSV-файла, специальных символов нет. Это должна быть простая нагрузка. Добавление check.names
, в то время как будет импортировано имя из CSV, приведет к тому, что данные не будут правильно загружаться для выполнения анализа.
Что можно сделать, чтобы это исправить?
Примечание :Я понимаю, что это второстепенное -Меня просто больше расстраивает тот факт, что я думаю, что загружаю правильно, но не получаю ожидаемого результата.Я мог бы переименовать столбец, используя colnames(orders)[1] <- "OrderID"
, но все же хочу знать, почему он загружается неправильно.