2015-03-05 6 views
0

Для данных, приведенных ниже, как получить индексы определенных строк?получить индексы нескольких имен строк

df 
name var1 var2 var3 var4 var5 ... 
site1 10 20 12 5  .. 
site2 15 NA 11 2  .. 
site3 NA 11 21 1  .. 
site4 9  18 NA 6  .. 
site1 9  15 NA 5  .. 
site3 10 18 15 7  .. 

Когда я хочу, чтобы выбрать показатели строки из Сайта 1 и site3, я напечатал:

which(c(df[,1]=='site1',df[,1]=='site3')) 

Затем я проверил результаты, которые полностью отличаются от комбинации which(df[,1]=='site1') и which(df[,1]=='site3') том, как сделай это? Благодарю.

+0

Try ', который (ДФ [1] == 'site1' | ДФ [1] == 'site3') '. Когда вы объединяете логический индекс, длина удваивается, а затем оператор 'which' получает позицию на основе нового индекса вместо исходного в вашем наборе данных – akrun

+0

, который (df [, 1]% in% c (" site1 "," site3 "))' – Metrics

+0

Спасибо. arkun, вы имеете в виду, что позиции нового индекса не будут представлять исходные позиции? –

ответ

1

Вы ищете это ...

> which(df[,1]=="site1"|df[,1]=="site3") 
[1] 1 3 5 6 
Смежные вопросы