Як відсортувати фрейм даних за датою в 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