Как отсортировать фрейм данных по дате в R (с примерами)


Есть два простых способа отсортировать фрейм данных по дате в R:

Способ 1: Заказ пользователя() из базы R

#sort from least recent to most recent
df[ order ( as.Date (df$date, format=" %m/%d/%Y ")),]

#sort from most recent to least recent
df[ rev ( order ( as.Date (df$date, format=" %m/%d/%Y "))),]

Способ 2: Используйте функции из пакетов lubridate и dplyr

library (lubridate)
library(dplyr)

#sort from least recent to most recent 
df %>% arrange ( mdy (df$date))

#sort from most recent to least recent
df %>% arrange ( desc ( mdy (df$date)))

В этом руководстве показан пример использования каждого из этих методов на практике.

Способ 1: использовать order() из базы R

Самый простой способ отсортировать фрейм данных по переменной даты в R — использовать функцию order() из базы R. Следующий код показывает, как использовать эту функцию на практике:

#create and view data frame
df <- data.frame(date=c('10/30/2021', '11/18/2021', '11/13/2021', '11/19/2021'),
 sales=c(3, 15, 14, 9))
df

 date sales
1 10/30/2021 3
2 11/18/2021 15
3 11/13/2021 14
4 11/19/2021 9

#sort from least recent to most recent
df[ order ( as.Date (df$date, format=" %m/%d/%Y ")),]

 date sales
1 10/30/2021 3
3 11/13/2021 14
2 11/18/2021 15
4 11/19/2021 9
#sort from most recent to least recent
df[ rev ( order ( as.Date (df$date, format=" %m/%d/%Y "))),]

 date sales
4 11/19/2021 9
2 11/18/2021 15
3 11/13/2021 14
1 10/30/2021 3

Способ 2: Используйте смазку и dplyr

Более быстрый способ отсортировать фрейм данных по переменной даты — использовать функции из пакетов lubridate и dplyr. Следующий код показывает, как использовать эти функции на практике:

#create and view data frame
df <- data.frame(date=c('10/30/2021', '11/18/2021', '11/13/2021', '11/19/2021'),
 sales=c(3, 15, 14, 9))
df

 date sales
1 10/30/2021 3
2 11/18/2021 15
3 11/13/2021 14
4 11/19/2021 9

#sort from least recent to most recent
df %>% arrange ( mdy (df$date))

 date sales
1 10/30/2021 3
2 11/13/2021 14
3 11/18/2021 15
4 11/19/2021 9

#sort from most recent to least recent
df %>% arrange ( desc ( mdy (df$date)))

 date sales
1 11/19/2021 9
2 11/18/2021 15
3 11/13/2021 14
4 10/30/2021 3

Обратите внимание, что мы использовали lubridate для указания даты в формате mdy() , но вы можете обратиться к этой шпаргалке, чтобы увидеть другие форматы даты, если ваша дата окажется в другом формате.

Дополнительные ресурсы

Как извлечь год из даты в R
Как объединить ежедневные данные в ежемесячные и ежегодные в R
Как расположить строки в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.