Как отсортировать фрейм данных по дате в 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