2013-09-23 3 views
2

У меня есть кадр данных с названиями акций, ценами и торговыми днями. Например:Не удается сортировать данные по дате

 x  tradedate trading_volume trading_value 
    1 JIG 03/01/2012  055556    23 
    2 JIG 04/01/2012  111111    43 
    3 ABC 03/01/2012  715455    73 
    4 ABC 04/01/2012  000000    39 

Я хочу сортировать данные по дате. Я попробовал этот код:

df$tradedate = as.Date(df$tradedate, format="%d.%m.%Y") 
df[with(df, order(df$tradedate)), ] 

а также это:

df[order(as.Date(df$tradedate, format="%d/%m/%Y")),] 

Но это не работает: Там код работает ... но данные не заказывали!

+2

Это, безусловно, работает здесь. Если вы хотите сохранить упорядоченный фрейм данных, вам нужно снова присвоить его переменной 'df':' df <-df [order (as.Date (df $ tradedate, format = "% d /% m /% Y ")),]' – juba

+0

Я полагаю, что ваша попытка с 'format ="% d.% M.% Y "' была опечаткой, учитывая «03/01/2012» и c. – Henrik

+0

Да, это была опечатка .. не работает с% d /% m /% Y – user2794659

ответ

2
my.data <- read.table(text=' 
     x  tradedate trading_volume trading_value 
     JIG 03/01/2012  055556    23 
     JIG 04/01/2012  111111    43 
     ABC 03/01/2012  715455    73 
     ABC 04/01/2012  000000    39 
', header=TRUE) 
my.data 

my.data$tradedate <- as.Date(my.data$tradedate, format = "%d/%m/%Y") 
my.data 

my.data2 <- my.data[order(my.data$tradedate),] 
my.data2 

    x tradedate trading_volume trading_value 
1 JIG 2012-01-03   55556   23 
3 ABC 2012-01-03   715455   73 
2 JIG 2012-01-04   111111   43 
4 ABC 2012-01-04    0   39 
Смежные вопросы