Вы можете сортировать свои данные и использовать first
и last
вместо min
и max
:
library(dplyr)
d1 %>%
arrange(Time) %>%
group_by(Date) %>%
summarise(Min = first(Time), Max= last(Time))
# # A tibble: 1 x 3
# Date Min Max
# <fctr> <fctr> <fctr>
# 1 04/06/2018 12:05:00 17:51:00
В качестве альтернативы, вы можете использовать stringsAsFactors = FALSE
в вашем data.frame
вызове, min
и max
работают с character
, они просто не работают с неупорядоченным factors
:
d1 <- data.frame(Date= format(a1, '%d/%m/%Y'), Time=format(a1, '%H:%M:%S'),stringsAsFactors = FALSE)
library(dplyr)
d1 %>%
group_by(Date) %>%
summarise(Min = min(Time), Max= max(Time))
# # A tibble: 1 x 3
# Date Min Max
# <fctr> <fctr> <fctr>
# 1 04/06/2018 12:05:00 17:51:00
данные
datetimes <- c(
'04/06/2018 17:51:00',
'04/06/2018 17:50:00',
'04/06/2018 17:33:00',
'04/06/2018 17:33:00',
'04/06/2018 17:29:00',
'04/06/2018 17:29:00',
'04/06/2018 17:06:00',
'04/06/2018 17:06:00',
'04/06/2018 17:01:00',
'04/06/2018 17:01:00',
'04/06/2018 16:49:00',
'04/06/2018 16:49:00',
'04/06/2018 16:43:00',
'04/06/2018 16:43:00',
'04/06/2018 16:38:00',
'04/06/2018 16:38:00',
'04/06/2018 16:22:00',
'04/06/2018 16:22:00',
'04/06/2018 16:21:00',
'04/06/2018 16:21:00',
'04/06/2018 16:14:00',
'04/06/2018 16:14:00',
'04/06/2018 15:57:00',
'04/06/2018 15:57:00',
'04/06/2018 12:05:00',
'04/06/2018 12:05:00',
'04/06/2018 12:05:00',
'04/06/2018 12:05:00',
'04/06/2018 12:05:00',
'04/06/2018 12:05:00',
'04/06/2018 12:05:00')
library(lubridate)
a1 <- dmy_hms(datetimes)
d1 <- data.frame(Date= format(a1, '%d/%m/%Y'), Time=format(a1, '%H:%M:%S'))