[12]

2013-06-03 8 views
5

में दो कॉलम पर स्ट्रिंग मिलान मैं कई स्ट्रिंग मानदंडों से मेल खाता हूं और फिर मैच खोजने के लिए grepl का उपयोग करके आर में पंक्ति को सब्सक्राइब करता हूं। मैं another post जहां कुछ विशिष्ट कोड प्रयोग किया जाता है से एक अच्छा समाधान पाया है (लेकिन आप अंदाजा हो): subset(GEMA_EO5, grepl(paste(l, collapse="|"),GEMA_EO5$RefSeq_ID))[12]

मैं अगर यह दो कॉलम में grepl के लिए संभव है ऊपर के उदाहरण में सोच रहा हूँ, बस RefSeq_ID के बजाय। वह है, किसी अन्य विधि के माध्यम से grepl में। दूसरे शब्दों में, मैं सिर्फ एक कॉलम में नहीं, बल्कि दो (या फिर भी कई) में विकल्पों को देखना चाहता हूं। क्या यह संभव है?

उदाहरण: 3 कॉलम, एक बी और सी। मैं मानदंडों को मानना ​​चाहता हूं कि टी (पंक्तियों 3 और 4) का प्रारूप "टी I" प्रारूप (3, बी) के बावजूद चुना गया है। इसे दोनों (4, ए) और (3, बी) की पहचान करनी चाहिए, इसलिए पिछले प्रश्न का लिंक। मैं इसे कॉलम ए और कॉलम बी में देखना चाहता हूं, एक या दूसरे नहीं।

a b  c 

    A A C P L 
    V V B W E E 
    W T I P J G 
    T W P J 
+0

ऐसा लगता है कि तुम सिर्फ 'इस्तेमाल कर सकते हैं |' 'grepl' को कई कॉल के परिणामों गठबंधन करने के लिए। या अपने डेटा फ्रेम पिघलाओ और एक झाड़ू बनाओ। क्या आपके पास एक और ठोस उदाहरण है? – Peyton

+0

आप कॉलम को एक साथ पेस्ट करने में सक्षम भी हो सकते हैं। – Peyton

+0

@ पेटन मैंने एक उदाहरण – kirk

उत्तर

6

यह इस तरह दिखाने के लिए कुछ डेमो डेटा है:

set.seed(1234) 
dat <- data.frame(A = sample(letters[1:3],10,TRUE), 
        B = sample(letters[1:3],10,TRUE)) 

सबसेट के [ का उपयोग करते हुए इस एक बहुत मेरी राय में अधिक स्पष्ट करता है - हम grepl उपयोग कर सकते हैं एक तार्किक एक के आधार पर वेक्टर देने के लिए मैच, और दो परीक्षणों (एकाधिक कॉलम पर) को गठबंधन करने के लिए | का उपयोग करें। आपको लगता है कि निहित सभी पंक्तियों का एक सबसेट चाहता है तो एक 'एक' या तो कॉलम में:

dat.a <- dat[with(dat, grepl("a", A)|grepl("a", B)),] 
    A B 
1 b a 
2 b a 
3 a c 
5 a a 
9 a a 
+1

धन्यवाद, यह काम करता है, अगर मैं 'डेटा [के साथ (डेटा, grepl (पेस्ट (एल, पतन = "|"), डीएफ $ सी | grepl (पेस्ट (एल, पतन = "|"), डीएफ $ बी)),] 'स्ट्रिंग स्पेसिंग – kirk

+0

के लिए खाते में जहां l प्रश्न में लिंक्ड पोस्ट में मिलान करने के लिए स्ट्रिंग मानदंडों की सूची है – kirk