如何按日期对数据框进行排序

Joh*_*ohn 46 sorting r date dataframe

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

I82*_*uch 116

假设您的数据框已命名d,

d[order(as.Date(d$V3, format="%d/%m/%Y")),]
Run Code Online (Sandbox Code Playgroud)

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


Lov*_*e-R 26

如今,使用lubridate和dplyr库是最有效和最舒适的.

d$V3 <- lubridate::dmy(d$V3)
dplyr::arrange(d, V3)
Run Code Online (Sandbox Code Playgroud)


pom*_*tee 15

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

out <- DF[rev(order(as.Date(DF$end))),]
Run Code Online (Sandbox Code Playgroud)

但是,通用功能可以产生相同的效果: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))),]
Run Code Online (Sandbox Code Playgroud)

希望它有所帮助.


Nit*_*itz 5

您可以使用 order() 对日期数据进行排序。

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

# Sort date descending order
d[rev(order(as.Date(d$V3, format = "%d/%m/%y"))),]
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助,

链接到我的 quora 答案https://qr.ae/TWngCe

谢谢