2013-10-29 8 views
8

से शब्दों के समूह को निकालने दें मान लें कि मेरे पास यादृच्छिक नामों का एक चरित्र वेक्टर है। मेरे पास कई कार बनाने वाले एक और चरित्र वेक्टर भी हैं और मैं मूल वेक्टर में एक कार घटना की किसी भी घटना को हटाना चाहता हूं।किसी चरित्र वेक्टर

तो दिया वैक्टर:

dat = c("Tonyhonda","DaveFord","Alextoyota") 
car = c("Honda","Ford","Toyota","honda","ford","toyota") 

मैं नीचे की तरह कुछ के साथ खत्म करना चाहते हैं:

dat = c("Tony","Dave","Alex") 

मैं कैसे आर में एक स्ट्रिंग का हिस्सा निकाल सकते हैं?

+3

मुझे यकीन नहीं है कि यह एक करीबी वोट क्यों मिला। यह उपयोगी होता है जब आप समझाने के लिए मतदान करते हैं कि क्यों, खासकर एक नए एसओ व्यक्ति के लिए। क्या मैं पूछ सकता हूं कि यह करीबी मतदाता के विषय क्यों है? –

+4

यदि आप निचले और अपरकेस पैटर्न दोनों से बचने और कोडरमिफा के उत्तर का उपयोग करना चाहते हैं, तो 'gsub' कॉल में ignore.case = TRUE का उपयोग करने पर विचार करें। –

उत्तर

15
gsub(x = dat, pattern = paste(car, collapse = "|"), replacement = "") 
[1] "Tony" "Dave" "Alex" 
1

बस ऊपर 42 की टिप्पणी औपचारिकता। बल्कि

car = c("Honda","Ford","Toyota","honda","ford","toyota") 

तुम बस का उपयोग कर सकते का उपयोग करने से:

carlist = c("Honda","Ford","Toyota") 

gsub(x = dat, pattern = paste(car, collapse = "|"), replacement = "", ignore.case = TRUE) 
[1] "Tony" "Dave" "Alex" 

आप केवल प्रत्येक शब्द आप सूची एक बार में बाहर करना चाहते हैं डाल करने के लिए अनुमति देता है।