我需要在两个向量之间找到匹配项:
我很困惑,为什么y==to_find和to_find1==y[9]的结果不同?有什么办法可以精确匹配我的向量吗?谢谢你的帮助。
PS:这个问题在R中匹配两个向量中部分得到了回答,但该帖子没有解释grep和==的含义。
y=c("13AD10","13AD11","13AD12","13AD13","13AD14","13AD16","13AD17","13AD19","13AD1","13AD20","13AD21","13AD24","13AD25","13AD2","13AD3","13AD5","13AD6","13AD7","13AD8","13AD9","13HD10","13HD11","13HD12","13HD14","13HD5","13HD7")
to_find=c("13AD1","13AD3","13AD7","13AD13","13AD20")
根据我在这个网站上找到的信息,我尝试了
select=grep(paste(to_find,collapse="|"),y)
这个查询返回了太多的条目(所有以13AD1开头的都在其中)。
[1] 1 2 3 4 5 6 7 8 9 10 15 18
我尝试了
select=which(y==to_find)
但不是所有条目都包含在内。
[1] 4 10 18
实际上,我遇到了这个问题
y==to_find
[1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
[21] FALSE FALSE FALSE FALSE FALSE FALSE
尽管例如
,to_find[1]==y[9]
[1] TRUE
我很困惑,为什么y==to_find和to_find1==y[9]的结果不同?有什么办法可以精确匹配我的向量吗?谢谢你的帮助。
PS:这个问题在R中匹配两个向量中部分得到了回答,但该帖子没有解释grep和==的含义。