9

(%d/%m/%Y) としてフォーマットする必要があるデータがあります。月ではなく日である最初の数字でソートされているため、データは時系列順ではありません。

指定できること、orderまたはreorder並べ替えを別の方法で行うことを望んでいます。これを行う方法がわかりません。

注文する日付データは次のとおりです。

date
1/1/2009  
1/1/2010
1/1/2011
5/4/2009
5/4/2011
10/2/2009
10/3/2011
15/9/2010
15/3/2009
31/12/2011
31/7/2009

提案をありがとう。

4

3 に答える 3

11

列ごとに並べ替える場合dateは、日付形式に変換します。

df[order(as.Date(df$date,format="%d/%m/%Y")),,drop=FALSE]
         date
1    1/1/2009
6   10/2/2009
9   15/3/2009
4    5/4/2009
11  31/7/2009
2    1/1/2010
8   15/9/2010
3    1/1/2011
7   10/3/2011
5    5/4/2011
10 31/12/2011
于 2013-07-25T17:16:19.423 に答える
10

これは、plyr と lubridate の助けを借りて簡単に行うことができます。

library(lubridate)
library(plyr)

df <- read.csv(text = "date
1/1/2009  
1/1/2010
1/1/2011
5/4/2009
5/4/2011
10/2/2009
10/3/2011
15/9/2010
15/3/2009
31/12/2011
31/7/2009", stringsAsFactors = FALSE)

# Convert variable to date    
df$date <- dmy(df$date)
arrange(df, date)
# Or for descending order
arrange(df, desc(date))
于 2013-07-26T13:34:26.993 に答える