Сортировка или упорядочение столбцов даты / времени по времени в R - PullRequest
0 голосов
/ 18 мая 2018

Мне нужно отсортировать фрейм данных на основе времени в столбце метки времени.

Вот мой ввод данных:

structure(list(Time.stamp = structure(1:6, .Label = c("05/06/2016 21:13", 
"05/06/2016 22:52", "05/06/2016 22:58", "09/06/2016 22:40", "09/06/2016 22:45", 
"09/06/2016 22:50"), class = "factor")), .Names = "Time.stamp", class = "data.frame", row.names = c(NA, 
-6L))

Мой желаемый вывод -

Expected
05/06/2016            21:13
09/06/2016            22:40
09/06/2016            22:45
09/06/2016            22:50
05/06/2016            22:52
05/06/2016            22:58

Я пытался смазать пакет,

data = dmy_hm(data$Time.stamp)   
data2 = arrange(data,f_device_time_new)

Но это не работает.Кто-нибудь может дать какое-нибудь предложение?

1 Ответ

0 голосов
/ 18 мая 2018

Одним из возможных решений является следующее:

data = structure(list(Time.stamp = structure(1:6, .Label = c("05/06/2016 21:13", 
"05/06/2016 22:52", "05/06/2016 22:58", "09/06/2016 22:40", "09/06/2016 22:45", 
"09/06/2016 22:50"), class = "factor")), .Names = "Time.stamp", class = "data.frame", row.names = c(NA, 
-6L))

library(dplyr)
library(lubridate)

data %>%
  mutate(Time.stamp = dmy_hm(Time.stamp),
         hour = hour(Time.stamp),
         min = minute(Time.stamp),
         sec = second(Time.stamp)) %>%
  arrange(hour, min, sec) %>%
  select(Time.stamp)

#   Time.stamp
# 1 2016-06-05 21:13:00
# 2 2016-06-09 22:40:00
# 3 2016-06-09 22:45:00
# 4 2016-06-09 22:50:00
# 5 2016-06-05 22:52:00
# 6 2016-06-05 22:58:00

Обратите внимание, что в вашем случае вам не нужен столбец sec, но я публикую более общее решение.

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