Я спросил об этом вопрос об этом несколько месяцев назад, и я подумал, что ответ решил мою проблему, но я снова столкнулся с проблемой, и решение не было" я работаю для меня.
Я импортирую CSV:
orders <- read.csv("<file_location>", 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("<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
Это работает правильно.
Мой вопрос: почему R
добавить X. в начало первого имени столбца? Как видно из файла CSV, специальных символов нет. Это должна быть простая нагрузка. Добавление check.names
, в то время как будет импортировать имя из CSV, приведет к тому, что данные не будут правильно загружаться для выполнения анализа.
Что я могу сделать, чтобы исправить это?
Боковое замечание: я понимаю, что это несовершеннолетний. Меня больше расстраивает тот факт, что я думаю, что правильно загружаю, но не получаю ожидаемого результата. Я мог бы переименовать столбец, используя colnames(orders)[1] <- "OrderID"
, но все же хочу знать, почему он не загружается правильно.