आर

2009-10-29 6 views
5

में स्तंभों में मेलिंग स्ट्रिंग्स मुझे 2 वर्ण कॉलम के साथ डेटा फ्रेम मिला है। मैं उन पंक्तियों को ढूंढना चाहता हूं जिनमें एक कॉलम में दूसरा शामिल है, हालांकि grepl अजीब है। कोई विचार?आर

> (df <- data.frame(letter=c('a','b'),food = c('apple','pear','bun','beets'))) 
    letter food 
1  a apple 
2  b pear 
3  a bun 
4  b beets 

> grepl(df$letter,df$food) 

[1] TRUE TRUE FALSE FALSE 

लेकिन मैं चाहता हूँ टी एफ एफ टी

धन्यवाद।

Warning message: 
In grepl(df$letter, df$food) : 
    argument 'pattern' has length > 1 and only the first element will be used 

यह ?grepl द्वारा की पुष्टि की है pattern के तहत:

उत्तर

5

केविन के सुझाव लागू का उपयोग करने के लिए धन्यवाद,

> mapply (grepl, df $ पत्र, df $ भोजन)

परिणाम वांछित आउटपुट में।

2

जब मैं अपने कोड चलाने के लिए, मैं यह चेतावनी मिलती

If a character vector of length 2 or more is supplied, 
the first element is used with a warning. 

तो grepl दोनों सेब और नाशपाती में एक जा रहे हैं। यह आपकी समस्या का समाधान नहीं करता है (लागू करें या इसके रूपों में से एक?), लेकिन यह आपके द्वारा प्राप्त किए जा रहे आउटपुट को समझाता है।

+0

धन्यवाद। जाहिर है आर संस्करण 2.10.0 में चेतावनी नई है। – novembera

+0

मैं उपयोग कर रहा हूं: आर संस्करण 2.10.0 पैच (200 9 -108 आर 50254) x86_64-apple-darwin9.8.0 – kmm