对R数据框中的日期和时间列进行排序



我将其他几个数据帧合并在一起。不过,现在的日期已不再按时间顺序排列(见图)。如何根据"日期"列的值对数据框进行排序?

我想更改的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"

相关内容

  • 没有找到相关文章

最新更新