У меня есть 2 вектора.
x=c("a", "b", "c", "d", "a", "b", "c")
y=structure(c(1, 2, 3, 4, 5, 6, 7, 8), .Names = c("a", "e", "b",
"c", "d", "a", "b", "c"))
Я бы хотел последовательно сопоставить a
с a
, b
с b
, чтобы x[2]
соответствовало y[3]
, а не y[7]
; и x[5]
соответствует y[6]
, а не y[1]
, и так далее, и тому подобное.
lapply(x, function(z) grep(z, names(y), fixed=T))
дает:
[[1]]
[1] 1 6
[[2]]
[1] 3 7
[[3]]
[1] 4 8
[[4]]
[1] 5
[[5]]
[1] 1 6
[[6]]
[1] 3 7
[[7]]
[1] 4 8
, который соответствует всем экземплярам. Как мне получить эту последовательность:
1 3 4 5 6 7 8
Так что элементы в x
могут быть сопоставлены с соответствующими значениями в y
соответственно?