Изменить формат даты и часа на числовой формат - PullRequest
10 голосов
/ 21 ноября 2011

Я работаю в R, и мне нужно перейти от столбца в формате

9/27/2011  3:33:00 PM 

к формату значения.В Excel я могу использовать функцию value(), но я не знаю, как это сделать в R.

Мои данные выглядят так:

9/27/2011 15:33 a   1   5   9
9/27/2011 15:33 v   2   6   2
9/27/2011 15:34 c   3   7   1

Ответы [ 2 ]

23 голосов
/ 21 ноября 2011

Чтобы преобразовать строку в формат даты R, используйте as.POSIXct - тогда вы можете привести ее к числовому значению, используя as.numeric:

> x <- as.POSIXct("9/27/2011  3:33:00 PM", format="%m/%d/%Y  %H:%M:%S %p")
> x
[1] "2011-09-27 03:33:00 BST"
> as.numeric(x)
[1] 1317090780

Полученное вами значение указывает количество секунд с произвольной даты, обычно 1 января 1970 года. Обратите внимание, что это отличается от Excel, где дата хранится как число дней с произвольной даты (01.01.1900, если моя память хорошо мне подходит - я стараюсь больше не использовать Excel).

Для получения дополнительной информации см. ?DateTimeClasses

3 голосов
/ 15 октября 2013

Это было полезно для меня:

> test=as.POSIXlt("09/13/2006", format="%m/%d/%Y")
> test
[1] "2006-09-13"
> 1900+test$year
[1] 2006
> test$yday
[1] 255
> test$yday/365
[1] 0.6986301
> 1900+test$year+test$yday/366
[1] 2006.697

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...