2013-09-25 73 views
1

我有兩個字符向量A和B.大多數A在B中匹配字符串,匹配前6個字符。 一個字符串總是以'd'結尾,B字符串總是以'z'結尾。我想基於A排序B,並把任何非比賽中C.基於另一個部分匹配向量的排序向量

原始數據:

A <- c("ABCD01d", "DEFG10d", "ZYXW43d") 
B <- c("ABCD01z", "ZYXW43z", "DEFG10z", "DFGS88z") 

我想直到結束:

A <- c("ABCD01d", "DEFG10d", "ZYXW43d") 
B <- c("ABCD01z", "DEFG10z", "ZYXW43z") 
C <- c("DFGS88z") 

什麼是最好的方法來做到這一點?

+4

你有你自己嘗試什麼嗎?請顯示您一直在嘗試的內容,以及爲什麼它不起作用。 –

回答

2

試試這個:

m <- match(substr(B,1,6), substr(A,1,6)) 
B[na.exclude(m)] 
#[1] "ABCD01z" "DEFG10z" "ZYXW43z" 
B[is.na(m)] 
#[1] "DFGS88z" 
+0

是的,我看不到一個更簡單的方法。 'intersect'和其他表明自己都在調用'hood'的方法。 – thelatemail