2012-03-19 5 views
0

У меня есть data.frame вроде этого:Как читать индекс data.frame?

> aaa 
      AdjClose 
2012-01-03 15.5 
2012-01-04 18.8 
2012-01-05 13.9 

Doing dt$AdjClose я получаю «колонку» с ценами, но, как получить даты?

Спасибо!

ответ

4

rownames(aaa) предоставит их вам. Обратите внимание, что они будут символьным вектором, а не тем, что R считает датами. Для этого вам нужно преобразовать символы в даты с помощью as.Date(). Это показано ниже:

> aaa 
      AdjClose 
2012-01-03  15.5 
2012-01-04  18.8 
2012-01-05  13.9 
> rownames(aaa) 
[1] "2012-01-03" "2012-01-04" "2012-01-05" 
> class(rownames(aaa)) 
[1] "character" 
> as.Date(rownames(aaa)) 
[1] "2012-01-03" "2012-01-04" "2012-01-05" 
> class(as.Date(rownames(aaa))) 
[1] "Date" 

мне не нужно указать format для as.Date() вызова, как ваши персонажи уже в формате по умолчанию.

+2

Чтобы добавить к ответу Гэвина, я обычно думаю, что это плохая идея хранить важную информацию в именах строк, поскольку они могут быть потеряны с определенными изменениями классов и т. Д. ИМХО было бы хорошей идеей хранить их как вектор-столбец, что-то например 'data.frame (date = rownames (aaa), aaa $ AdjClose' –

+0

@TylerRinker Аминь! –

Смежные вопросы