如何按日期排序数据框

我需要在R中按日期对数据框进行排序。日期都是“dd / mm / yyyy”的形式。 日期在第3栏。 列标题是V3。 我已经看到如何按列对数据框进行排序,并且我已经看到如何将字符串转换为日期值。 我无法将这两者结合起来,以便按日期对数据框进行排序。


假设你的数据框被命名为d

d[order(as.Date(d$V3, format="%d/%m/%Y")),]

阅读我的博客文章,按列的内容对数据框排序,如果没有意义的话。


如果您想按降序对日期进行排序,则减号不适用于日期。

out <- DF[rev(order(as.Date(DF$end))),]

但是,您可以使用通用函数rev()具有相同的效果。 因此,您可以将rev和order混合起来,例如:

#init data
DF <- data.frame(ID=c('ID3', 'ID2','ID1'), end=c('4/1/09 12:00', '6/1/10 14:20', '1/1/11 11:10')
#change order
out <- DF[rev(order(as.Date(DF$end))),]

希望它有帮助。


现在,使用lubridate和dplyr库是最高效和最舒适的。

d$V3 <- lubridate::dmy(d$V3)
dplyr::arrange(d, V3)
链接地址: http://www.djcxy.com/p/24895.html

上一篇: How to sort a data frame by date

下一篇: How to delete columns that contain ONLY NAs?