Как отсортировать фрейм данных по дате в 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 — использовать функцию R base order() . Следующий код показывает, как использовать эту функцию на практике:

 #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

        dirty dates
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 ")),]

        dirty dates
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 "))),]

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

Метод 2: используйте Lubridate и 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

        dirty date
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))

        dirty date
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)))

        dirty date
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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *