gpt4 book ai didi

r - 在R中按降序订购日期/时间

转载 作者:行者123 更新时间:2023-12-03 20:23:29 27 4
gpt4 key购买 nike

我有一个数据框DF,其中一列是日期/时间,我想按此列的降序对数据框进行排序。

DF <- data.frame(ID=c('ID3', 'ID2','ID1'), end=c('4/1/10 12:00', '6/1/11 14:20', '1/1/09 11:10'), age=c(40,30,20));


我首先使用 endet列转换为 et = as.POSIXct(DF$end,format='%m/%d/%Y %H:%M'),并使用了以下内容,但是得到了错误,该参数不接受一元运算符'-':

out <- DF[order(-DF$et),];


我也尝试使用降序标志,但是再次收到关于参数长度不相同的错误。

out <- DF[order(DF$et, descending=TRUE),];


但是,升序似乎有效: out <- DF[order(DF$et),]

如何以降序排列(最近的时间在前)?谢谢。

最佳答案

有很少的代码可以为您的问题提供一个简单而通用的解决方案。

您已经注意到,负号不适用于日期,因为负日期还不存在!

但是,使用通用函数rev()可以达到相同的效果。因此,您将rev和order混合在一起:

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


当您在数字上使用减号时,您将在一遍中将负数分类。我认为,当您使用rev()函数时,您需要进行两次遍历,一次遍历以升序排序,另一遍则是反转顺序。但是根据3个观察结果,很难看到。

希望能有所帮助。

关于r - 在R中按降序订购日期/时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com