2013-09-25 75 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