2012-06-06 3 views
3

Начиная с data.frame ...добывающие метки строк (?) Из data.frame

df = data.frame(k=c(1,5,4,7,6), v=c(3,1,4,1,5)) 
> df 
    k v 
1 1 3 
2 5 1 
3 4 4 
4 7 1 
5 6 5 

Я мог бы запустить некоторое количество произвольных манипуляций ...

> foo1 = df[df$k>3,] 
> foo2 = head(foo1[order(foo1$v),], 2) 
> foo2 
    k v 
2 5 1 
4 7 1 

В этом Точка foo2 каким-то образом сохранила исходные номера строк от df (в данном случае 2 и 4).

Как их извлечь?

> insert_magic_function_here(foo2) 
[1] 2 4 

ответ

11

Я думаю, что вы ищете rownames.

+3

Это заслуживает дополнительного оговорки, что ссылка на 'foo2 [2,]' не даст вам строку с надписью '2'. Он вместо этого даст вам вторую строку в файле data.frame 'foo2', который помечен как' 4'. – Justin

+0

@ Justin true. но работает именно так, как я хочу использовать, который является 'df [as.numeric (rownames (foo2)),]' –

+3

'foo2 [" 2 ",]' должен возвращать первую строку в foo2. Имена ростов - это «характер», несмотря на очевидные обратные. –

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