n <- c(letters[15:20], '1', '2', '3')
b <- letters
unlist(sapply(n, function(l) which(b == l)))
# o p q r s t
# 15 16 17 18 19 20
Вы можете использовать which
, он сообщает вам индекс истинности теста. Теперь вам просто нужно применить это к вашему вектору букв для проверки.
РЕДАКТИРОВАТЬ:
Как упоминалось @Chris, если у вас есть несколько совпадений, вы должны быть осторожен. В этом сценарии вы можете удалить unlist()
, и результатом будет список векторов, содержащих индексы совпадающих элементов. Обратите внимание, что элементы без совпадения также находятся в этом списке, но их соответствующий вектор пуст (integer(0)
)
n <- c("KO_2","KO_12","WT_14","KO_16","WT_21")
b <- c("KO_2","WT_14","KO_12","WT_14","KO_44","KO_45","KO_47","WT_35","KO_41")
sapply(n, function(l) which(b == l))
# $KO_2
# [1] 1
#
# $KO_12
# [1] 3
#
# $WT_14
# [1] 2 4
#
# $KO_16
# integer(0)
#
# $WT_21
# integer(0)