2013-10-29 27 views
8

假設我有一個隨機名稱的字符向量。我還擁有另一個帶有多個汽車製造商的角色矢量,我想要移除原始矢量中發生的任何汽車事故。從字符向量中刪除一組字詞

所以給出的載體:

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

我想要的東西落得象下面這樣:

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

如何刪除R中的字符串的一部分?

+3

我不知道爲什麼這得到了一個密切的投票。當你投票結束解釋爲什麼,特別是對一個新的SO人員時,這很有幫助。請問爲什麼這是關閉選民的話題? –

+4

如果您想避免同時使用大寫和小寫模式並使用Codoremifa的答案,請考慮在'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" 

這讓你只能把你想要列表中的一個時間來排除每個單詞。