r - 在R数据框中使用日期和时间对列进行排序
问题描述
我将其他几个数据框合并在一起。然而,现在日期不再按时间顺序排列(见图)。如何根据“日期”列的值对数据框进行排序?
我首先尝试将“日期”列设置为索引,但由于“日期”列不仅具有唯一值,我不能。
每当我这样做时:
new_df <- new_df[order(new_df$Date),]
它仅根据日期的第一个值对日期进行排序。
除此之外,有时“日期”列有多个完全相同的值。每当“日期”列具有完全相同的值时,如何使索引相同?
解决方案
order
应该基于转换为Date
类
new_df$Date1 <- as.Date(new_df$Date, "%A, %d %b %Y, %H:%M")
如果我们想在排序中也保留时间部分,请使用as.POSIXct
new_df$Date1 <- as.POSIXct(new_df$Date,format = "%A, %d %b %Y, %H:%M")
然后做
new_df <- new_df[order(new_df$Date1),]
如果我们想创建一个时间序列对象,请使用xts
library(xts)
xts(new_df["Income"], order.by = new_df$Date1)
作为一个可重现的例子
> str1 <- "Saturday, 12 Apr 2014, 18:00"
> as.Date(str1, "%A, %d %b %Y, %H:%M")
[1] "2014-04-12"
> as.POSIXct(str1, format = "%A, %d %b %Y, %H:%M")
[1] "2014-04-12 18:00:00 EDT"
推荐阅读
- javascript - 这是您在 csharp 中正确编码 html textarea 的方式吗
- rxjs - 放置 HTMLElement 时 fromEvent 不会触发,放置 Jquery 对象时不会触发
- c# - 这段代码中的 new 运算符是什么意思
- nginx - NGINX 使用 POST 方法返回 405 不允许
- python - 分割模型生成 NaN 作为输出
- button - 根据单选按钮的选择动态添加输入
- ssl - 使用 Kafka 连接器时,我可以在哪里传递 Datastage 中的属性文件
- python - Mininet 中的迷你编辑
- nginx - 需要使用正则表达式在 Nginx 位置重定向中添加一个子文件夹
- c# - iText7 RegexBasedLocationExtractionStrategy 未找到所有正则表达式匹配项