У меня есть ситуация, когда я хотел бы обнаружить условия между двумя логическими именованными векторами на основе комбинации TRUE/FALSE в каждой позиции в векторе. Например:Выбор логических векторных элементов на основе определенных условий
x <- c(TRUE, FALSE, FALSE, TRUE)
names(x) <- c("a", "b", "c", "d")
y <- c(TRUE, TRUE, FALSE, FALSE)
names(y) <- names(x)
Для каждого элемента в этих двух векторов я хочу, чтобы обнаружить 3 условия:
x[i]
являетсяTRUE
иy[i]
являетсяTRUE
;x[i]
являетсяFALSE
иy[i]
являетсяTRUE
,x[i]
являетсяTRUE
иy[i]
являетсяFALSE
.
Длина x
и y
такие же, но могут быть длиннее этого примера. Я хочу получить имя элемента для каждого условия и присвоить имя элемента новой переменной. Для этого примера:
v1 <- "a"
v2 <- "b"
v3 <- "d"
В более длинной версии этих двух векторов я мог бы в конечном итоге с чем-то вроде:
v1 <- c("a", "e")
v2 <- c("b", "f", "g")
v3 <- c("d", "i", "k", "l")
Что такое лучший Векторизованных способ сделать это. Я думаю, что это просто, но я не могу ответить на этот вопрос. Заранее спасибо.
Ах, так «а» получить назначен TT, «B» с ТФ и т. д. Но почему х + у + х? Я не следую за добавлением x дважды. Хорошо, я вижу. Это генерирует 4 различных целых числа для 4 ситуаций, используя логические целые числа. Умная!! – Ernie
Еще один пример взаимодействия, который поможет с помощью 'split (names (x), взаимодействия (x, y, drop = TRUE))' - может сделать его более интерпретируемым, чем создание 'g' посредством добавления – thelatemail
Очень приятно! Большое спасибо вам обоим! – Ernie