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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *