如何在 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:使用lubridatedplyr包的功能

 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:使用 R 库中的 order()

在 R 中按日期变量对数据框进行排序的最简单方法是使用 R 基本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中排列行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注