2013-02-05 23 views
5

की वेक्टर को देखते हुए मैं स्ट्रिंगपहचानें कॉलम सूचकांक मिलान स्ट्रिंग

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

का एक वेक्टर मिल गया है और मैं कई columnsl के साथ एक मैट्रिक्स है; जिसमें स्ट्रिंग के उस वेक्टर में नाम शामिल हैं। मैं कॉलम नंबर/इंडेक्स प्राप्त करना चाहता हूं जो उनके नाम से मेल खाता है।

which(colnames(sample_matrix) == x) 

यह उपरोक्त काम करता है जब x वेक्टर नहीं बल्कि एक तत्व होता है। कोई समाधान?

उत्तर

7

की कोशिश

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

आप के लिए क्या देख रहे हैं %in% में है:

which(colnames(sample_matrix) %in% x) 

या, वैकल्पिक रूप से, match

match(x, colnames(sample_matrix)) 
2
इसके अलावा

:

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

grep का उपयोग करना अक्सर अधिक सामान्य होता है जो मूल्यों की एक स्ट्रिंग में उपस्थिति के लिए परीक्षण करता है। आप एक पैटर्न से मेल खाने वाले सभी आइटम प्राप्त कर सकते हैं, "ए" से शुरू होने वाले सभी नाम कहें।

संबंधित मुद्दे