У мене є список:
l1 = list(1, 3, 5)
У мене є ще один список:
l2 = list(list(1, 3), list(2, 6), list(3, 5), list(1, 5))
Я хочу перевірити, чи кожна з двох елементів підмножини l1 (тобто list(1, 3)
, list(1, 5)
і list(3, 5)
) існують у l2 чи ні.
У цьому випадку я просто хочу прямої відповіді як TRUE
. Як я можу це зробити?
Відповіді:
3 для відповіді № 1Спочатку знайдіть усі можливі комбінації l1
, повертається як список списків.
cmb <- combn(l1, 2, simplify = FALSE)
Зачищаючи мою оригінальну відповідь, і спираючись на коментар @alexis_laz, ви хочете %in%
.
l2 <- list(list(1, 3), list(2, 6), list(3, 5), list(1, 5))
cmb %in% l2
# [1] TRUE TRUE TRUE
all(cmb %in% l2)
# [1] TRUE
Але коли ми маємо нове l2
OP згадує в коментарях (я називаю це l3
), ми отримуємо
l3 <- list(list(1, 3), list(2, 6), list(3, 5), list(1, 6))
cmb %in% l3
# [1] TRUE FALSE TRUE
all(cmb %in% l3)
# [1] FALSE