Я хочу сопоставить вектор 1 с вектором 2, чтобы увидеть, найдены ли элементы в векторе 1 и найдены ли в векторе 2. Затем я хочу создать 2 новых вектора - подмножество вектора 1 из строк значений, содержащих как векторы, так иподмножество вектора 1 для значений, не найденных в обоих векторах. Функция match()
, за которой следует which(is.na())
, отлично работает для небольших наборов данных, но у меня есть набор данных с 1000 элементами.
Data1 <- c(1, 2, 3, 4, 5)
Data2 <- c(1, 3, 5, 6, 7)
#Match vector1 to vector2
A <- match(Data1, Data2)
[1] 1 NA 2 NA 3
#to obtain positions of non matching elements
x <- which(is.na(A), arr.ind = TRUE)
[1] 2 4
Data1[c(2,4)]
#to obtain positions of matching elements
y < which(A >= 1)
[1] 1 3 5
Data1[c(1,3,5)]