У меня есть некоторые числовые данные о дате из Excel:Работа с числовыми (десятичными) датами в R?
> df <- data.frame(c(42613, 42612, 42614), c(42614.61, 42613.97, 42612.12))
> names(df) <- c("Closetime", "Opentime")
Оба Closetime
и Opentime
являются numeric
. Я хочу сохранить час/минута/секунда данные из OpenTime
и добавить время '00: 00: 00' на каждый день в Closetime
:
> df$Closetime <- paste(as.Date(df$Closetime, origin = '1900-01-01'), c('00:00:00'))
Easy достаточно, чтобы сделать Closetime
, но когда я пытаюсь использовать lubridate::date_decimal
на Opentime
, все идет к черту.
> df$Opentime <- date_decimal(df$Opentime)
> df
Closetime Opentime
1 2016-09-02 00:00:00 42614-08-11 15:36:00
2 2016-09-01 00:00:00 42613-12-21 01:12:00
3 2016-09-03 00:00:00 42612-02-13 22:04:48
Как я могу получить как Opentime
и Closetime
быть одного и того же типа/формата? В конце концов, я ищу, чтобы иметь возможность получить разницу в часах между временами в каждом столбце для справки.
Ну, это самый худший способ масштабирования дней в секундах, как ваш * свободный *, например, пара секунд регулировки. Другие ответы показывают, как сделать это правильно, используя типы R. –
@DirkEddelbuettel справедливая точка, но, возможно, если вы делаете все промежуточные преобразования, вы должны указать, какая цель служит. –
Приходите еще? Обращайтесь к моему ответу ниже? Можешь прочитать? –