2016-08-24 3 views
1

Я хочу импортировать файл csv в фрейм данных, но дата в моем файле csv находится в нестандартном формате.read.csv2 форматирование даты в R

Дата в первом столбце в следующем формате:

08.09.2016

Одним из аргументов в моих функций read.csv2 является определение классов, и когда я указываю эту колонку в виде дату я получаю следующее сообщение об ошибке при выполнении:

Error in charToDate(x) : 
    character string is not in a standard unambiguous format 

Я предполагаю, что это не нравится преобразование даты из класса фактора на сегодняшний день класса.

Я немного ознакомился с POSIXlt, но я не понимаю деталей функции.

Любые идеи, как преобразовать класс из коэффициента на сегодняшний день ??

+1

Не позволяйте 'вариант colClasses' из' read.csv2' сделать преобразование в формат даты. Вместо этого прочитайте данные без этой опции и затем конвертируйте их в класс даты, указав соответствующий формат. 'df1 <- read.csv2 (текст =" 08.09.2016 ", header = FALSE); df1 [, 1] <- as.Date (df1 [, 1], format = "% m.% d.% Y") '. – RHertel

ответ

2

При преобразовании символа в дату вам необходимо указать формат, если он не является стандартным. Ошибка, полученная вами, является результатом as.Date("08.09.2016"). Но если вы делаете as.Date("08.09.2016", format = "%m.%d.%Y"), все в порядке.

Я не уверен, можно ли передать формат read.csv2 для правильного форматирования даты (может быть, нет). Я просто прочитал бы в этом столбце даты как фактор, затем сделаю as.Date(as.character(), format = "%m.%d.%Y") на этом столбце сам.

Как правило, мы используем следующий формат «dd/mm/yy», как я могу реорганизовать дату в этот формат?

format(, format = "%d/%m/%y").


Полный пример:

format(as.Date("08.09.2016", format = "%m.%d.%Y"), format = "%d/%m/%y") 
# [1] "09/08/16" 
+1

Конечно, вы можете перейти в свой формат к 'read.csv2' - сначала вы должны создать свой собственный класс - http://stackoverflow.com/a/13022441/496803 – thelatemail

+0

@thelatemail Отличная ссылка с множеством ответов , 'setClass' является лучшим, так как пакет' Defaults' уже не работает. –

Смежные вопросы