Настройка переупорядочения фреймов данных на основе значений столбцов

У меня есть фрейм данных, который выглядит так (есть еще сотни строк)

      hour   magnitude tornadoCount hourlyTornadoCount Percentage Tornadoes
 1: 01 AM         0            5                 18          0.277777778
 2: 01 AM         1            9                 18          0.500000000
 3: 01 AM         2            2                 18          0.111111111
 4: 01 AM         3            2                 18          0.111111111
 5: 01 PM         0           76                150          0.506666667
 6: 01 PM         1           45                150          0.300000000
 7: 01 PM         2           21                150          0.140000000
 8: 01 PM         3            5                150          0.033333333
 9: 01 PM         4            3                150          0.020000000
10: 02 AM         0            4                 22          0.181818182
11: 02 AM         1            6                 22          0.272727273
12: 02 AM         2           11                 22          0.500000000
13: 02 AM         4            1                 22          0.045454545
14: 02 PM         0           98                173          0.566473988
15: 02 PM         1           36                173          0.208092486
16: 02 PM         2           25                173          0.144508671
17: 02 PM         3           11                173          0.063583815
18: 02 PM         4            2                173          0.011560694
19: 02 PM         5            1                173          0.005780347
20: 03 AM         1            6                  9          0.666666667
21: 03 AM         2            2                  9          0.222222222
22: 03 AM         3            1                  9          0.111111111
23: 03 PM         0          116                257          0.451361868
24: 03 PM         1           84                257          0.326848249
25: 03 PM         2           39                257          0.151750973
26: 03 PM         3           12                257          0.046692607
27: 03 PM         4            6                257          0.023346304
28: 04 AM         0            4                 16          0.250000000
29: 04 AM         1            5                 16          0.312500000
30: 04 AM         2            5                 16          0.312500000

Я хочу реорганизовать это так, чтобы данные располагались в хронологическом порядке по столбцу «час». Есть ли способ сделать это? Спасибо!

Некоторое сходство, но не совсем. Я сортирую по 1 столбцу, но не знаю, как это сделать в этом случае. Если бы он был помечен 0-23, было бы проще, так как я мог бы просто использовать метод asc или desc. Однако я не знаю, как это сделать с такими значениями, как 01AM. Как можно дать команду, в которой они должны быть организованы с 01:00 до 12:00?

I.J. Abdul Hakeem 01.05.2018 19:04

Не уверен, почему голос против, +1 просто для отмены.

Brian Stamper 01.05.2018 19:08

Вам необходимо закодировать свои данные таким образом, чтобы R понимал, что hour относится ко времени. Возможно, вы хотите проверить пакет lubridatecran.r-project.org/web/packages/lubridate/vignettes/…

Brian Stamper 01.05.2018 19:14

Вы можете разделить числовую часть hour на числовой столбец, а затем расположить по этому

camille 01.05.2018 19:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
29
1

Ответы 1

Вы можете преобразовать время в 24-часовой формат, используя синтаксический анализатор lubridate (% I - это десятичный час (1-12), а% p - индикатор AM / PM), а затем отсортировать на основе этого, используя dpylr и lubridate:

library(dplyr)
library(lubridate)
ordered_df <- df %>% 
  mutate(hour_24 = parse_date_time(hour, '%I %p')) %>% 
  arrange(hour_24)

Другие вопросы по теме