2015-10-11 3 views
2

У меня есть две даты:Как получить разницу (в минутах) между двумя строками даты?

date1 <- '2015-10-05T20:57:00.000' 
date2 <- '2015-10-05T22:43:00.000' 

1) Мне нужно знать разницу в минутах 2) Кроме того, я хочу, чтобы извлечь год, месяц, день и час.

Это, как я пытался решить эти задачи:

1) time <- difftime(date1,date2,units="mins") # результат равен 0 вместо 106.

2) Я хочу, чтобы нас «lubridate», но не уверен, как применять это в мой формат.

+7

Попробуйте преобразовать в правильный формат для начала, например, 'as.POSIXct (date1, формат = "% FT% R")' или для конкретного примера 'difftime (as.POSIXct (» 2015-10-05T20: 57: 00.000 ', format = "% FT% R"), as.POSIXct (' 2015-10-05T22: 43: 00.000 ', format = "% FT% R"), единица s = "mins") ' –

ответ

6

Вы можете преобразовать даты в класс POSIXlt и использовать функции lubridate пакета:

date1 = as.POSIXlt('2015-10-05T20:57:00.000',format="%Y-%m-%dT%H:%M:%S") 
date2 = as.POSIXlt('2015-10-05T22:43:00.000',format="%Y-%m-%dT%H:%M:%S") 
install.packages("lubridate") 
library(lubridate) 
year(date1) 
month(date1) 
day(date1) 
hour(date1) 

когда вы превратили обе даты в классе POSIXlt (будьте осторожны с форматом аргумента), вы можете получить разницу в минут тоже:

difftime(date1,date2,units="mins") 
Смежные вопросы