如何按日期对数据框进行排序
问题描述:
我需要在R中按日期排序数据框。日期都是“dd/mm/yyyy”的形式。日期在第3栏。列标题是V3。我已经看到如何按列对数据框进行排序,并且我已经看到如何将字符串转换为日期值。我无法将这两者结合起来,以便按日期对数据框进行排序。如何按日期对数据框进行排序
答
假设您的数据帧被命名为d
,
d[order(as.Date(d$V3, format="%d/%m/%Y")),]
阅读我的博客文章,Sorting a data frame by the contents of a column,如果这没有意义。
答
如果您想按降序对日期进行排序,减号不适用于日期。
out <- DF[rev(order(as.Date(DF$end))),]
但是,您可以与通用函数rev()具有相同的效果。因此,你喜欢混合转速和订单:
#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))),]
希望它有帮助。
答
如果你只是想重新排列中的R等,从最旧到最新的约会,你总是可以做:
dataframe <- dataframe[nrow(dataframe):1,]
它救了我进出从Excel只是排序雅虎财经数据导出。
答
现在,使用lubridate和dplyr库是最高效和最舒适的。
d$V3 <- lubridate::dmy(d$V3)
dplyr::arrange(d, V3)
答
我发现在源(MM-DD-YYYY HH-MM-SS PM/AM)与个小时的工作,通过美国格式的唯一途径...
df_dataSet$time <- as.POSIXct(df_dataSet$time , format = "%m/%d/%Y %I:%M:%S %p" , tz = "GMT")
class(df_dataSet$time)
df_dataSet <- df_dataSet[do.call(order, df_dataSet), ]
@ 182Much工作完美的第一次。非常感谢 – John 2011-06-05 22:45:51
@John如何投票答案? :) – 2011-06-05 22:50:06
@Prasad Chalasani我很高兴,如果我知道 – John 2011-06-05 22:59:22