Преобразовать символ в дату в R

Я относительно новичок в R, но мне впервые приходилось иметь дело с преобразованием даты. Я прочитал свои данные из CSV (используя read.table ()), но сократил данные, чтобы выделить свою проблему. При чтении в R поле Date является символьным.

Просто большинство моих дат приводятся правильно, за исключением нескольких случаев. Пример ниже, надеюсь, покажет вам, что происходит.

# my attempt to coerce the date -- uses the stringr package
prods.all$Date2 <- as.Date(str_sub(prods.all$Date, 1, 
                str_locate(prods.all$Date, " ")[1]-1), 
                "%m/%d/%Y")

# grab two rows to highlight my issue
temp <- prods.all[c(1925:1926), c(1,8)]

> temp
                   Date      Date2
1925  10/9/2009 0:00:00 2009-10-09
1926 10/15/2009 0:00:00 0200-10-15

Как вы можете видеть, год в некоторых датах неточный. Кажется, что такая закономерность возникает, когда день выражается двузначным числом.

Я просмотрел пару книг и попытался найти в Google лучший способ, но все, кажется, предполагает, что мои данные неправильно отформатированы при вводе.

Учитывая, насколько мощным является R, я полагаю, что есть очень простой способ заставить мою колонку быть действительными датами и что я упускаю из виду очень очевидное решение.

Мы будем благодарны за любую помощь, которую вы можете предоставить.

28
задан Andrie 31 October 2011 в 16:45
поделиться