2013-02-05 16 views
5

Ho un vettore di stringaIdentificare Colonne indice corrispondente dato vettore di String

x<-c('a','b') 

e ho una matrice con columnsl multipla; che contiene nomi in quel vettore di stringa. Vorrei ottenere il numero di colonna/indice che corrisponde al loro nome.

which(colnames(sample_matrix) == x) 

Questo sopra funziona quando x non è un vettore ma un singolo elemento. Qualche soluzione?

risposta

7

provare

which(colnames(sample_matrix) %in% x) 
1

Quello che state cercando è %in% come in:

which(colnames(sample_matrix) %in% x) 

O, in alternativa, match

match(x, colnames(sample_matrix)) 
2

anche:

grep("^a$|^b$", colnames(sample_matrix)) 

L'utilizzo di grep è spesso più generale del test della presenza in una stringa di valori. È possibile ottenere tutti gli elementi che corrispondono a un modello, ad esempio tutti i nomi che iniziano con "a".

Problemi correlati