Вам нужно unlist
список:
X <- "investment"
Y <- list(c("non-investment", "investment"))
X %in% unlist(Y)
Обратите внимание, что я изменил его на X и Y: t
- базовая функция, поэтому лучше не перезаписывать ее, потому что это может вызвать конфликты!
Следует учитывать списки с несколькими векторами и выяснить, хотите ли вы искать по списку векторов или по определенному вектору. Затем вы можете использовать unlist для одновременной проверки всех векторов и квадратные скобки для проверки конкретного вектора. Чтобы проиллюстрировать это, здесь есть подсписки в Y
, а строка X
находится во второй list, unlist
говорит нам, что X
находится в Y
, а Y[[1]]
возвращает FALSE
, потому что %in%
проверяет только первый подсписок:
X <- "alpha"
Y <- list(c("non-investment", "investment"), c("alpha", "beta"))
X %in% unlist(Y)
X %in% Y[[1]]
Обратите внимание, что, если вы указали Y
как просто вектор - что, по сути, является тем же, что и в вашем примере, потому что нет других подсписков - тогда вы можете просто использовать:
X <- "investment"
Y <- c("non-investment", "investment")
X %in% Y