Как мне манипулировать переменной datetime, импортированной из Excel в R - PullRequest
0 голосов
/ 03 июня 2018

Я импортирую несколько листов Excel в R, используя readxl.Каждый из этих листов содержит наблюдения за транзакциями, которые включают в себя поля DateOfEvent и * 1003. *.

Когда я импортирую поле времени, R преобразует его в объект POSIXct на основе даты, полученной из Excel Day 0, т.е.1899-12-31 0:0:0

например, dat <- data.frame(date=Sys.Date()+0:1, time=as.POSIXct(c(10,11), origin="1899-12-31"))

С данными во фрейме данных, используя шаг dplyr для очистки моих данных, как бы я -

  • Использовать lubridate для перекодирования части даты в переменной с использованием значения DateOfEvent?
  • Сохранять время, но делать его независимым от даты, чтобы я мог сравнивать события, происходящие в временных интервалах в разные дни (т.е. отбрасывать1899 дата, но отформатировать дату, чтобы я мог проводить сравнения по дням)?

1 Ответ

0 голосов
/ 03 июня 2018

Используйте update(), чтобы изменить год в time.
Используйте hms::as.hms(), если вы хотите извлечь только объект времени из time (это преобразуется в UTC):

library(tidyverse)

dat %>% 
  mutate(time = update(time, 
                       year = year(date), 
                       month = month(date), 
                       day = day(date)),
         hms = hms::as.hms(time))

        date                time      hms
1 2018-06-02 2018-06-02 16:00:10 23:00:10
2 2018-06-03 2018-06-03 16:00:11 23:00:11
...