按字符和日期列对数据进行排序

时间:2014-03-29 00:08:56

标签: r sorting dataframe dataset

我正在尝试按字符列(降序)和日期变量(升序)对简单数据集进行排序。

   fx_code  date    fx_spot 
1      AUD 2000-01-31  0.6370  
2      AUD 2000-02-29  0.6178   
3      AUD 2000-03-31  0.6071   
4      AUD 2000-04-28  0.5839   
5      AUD 2000-05-31  0.5725   

当我运行以下代码时

DF$date <- as.Date(DF$date, format = "%Y-%m-%d")
DF <- DF[order(DF$fx_code,-DF$date),] 

我收到以下错误:

  

-.Date(DF $ date)中的错误:一元 - 未定义“日期”对象

3 个答案:

答案 0 :(得分:3)

试试这个:

DF <- DF[order(DF$fx_code, - xtfrm(DF$date)), ] 

答案 1 :(得分:3)

as.numeric会更容易理解:

DF <- DF[order(DF$fx_code, - as.numeric(DF$date)), ] 

在幕后,这是xtfrm实际做的事情:

> xtfrm(as.Date('2000-04-29', format='%Y-%m-%d'))
[1] 11076
> as.numeric(as.Date('2000-04-29', format='%Y-%m-%d'))
[1] 11076

答案 2 :(得分:0)

您也可以这样做

rev(order(date_field))
DF <- DF[rev(order(DF$date))]