我将其他几个数据帧合并在一起。不过,现在的日期已不再按时间顺序排列(见图)。如何根据"日期"列的值对数据框进行排序?
我想更改的R数据帧输出
我首先尝试将'Date'列设置为索引,但由于'Date'列不仅具有唯一值,所以我不能。
每当我这样做的时候:
new_df <- new_df[order(new_df$Date),]
它只根据日期的第一个值对日期进行排序。
除此之外,有时'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"