Последовательность 1: k - есть ли элемент последовательности в списке списков? (в R) - PullRequest
2 голосов
/ 02 апреля 2020

Я пытаюсь написать функцию. У меня есть два вектора и переменная k (число), например: vector1 <- c (1,2), vector2 <- c (2,4) и k = 5. Я делаю три последовательности: одна из первых элементов векторов (1: 2), вторая для следующих элементов векторов (2: 4) - мне удалось сделать это с помощью mapply: </p>

mapply(seq, vector1, vector2, SIMPLIFY=FALSE)

и третья последовательность 1: k, и у меня возникают проблемы с поиском, есть ли элемент третьей последовательности во второй или в третьей последовательности, и если это моя функция, должна вернуть TRUE для этого элемента, например, вывод должен быть примерно таким:

TRUE TRUE TRUE TRUE FALSE

(ИСТИНА - 1 в 1: 2, ИСТИНА - 2 в 1: 2 (а также 2: 4), ИСТИНА - 3 в 2: 4, TRUE - 4 в 2: 4 и FALSE-5 не в 1: 2 и не в 2: 4)

Я пытался использовать apply (apply) с isTRUE, element% в% последовательностей [I]. Есть ли простое решение без использования al oop? Заранее спасибо.

1 Ответ

0 голосов
/ 02 апреля 2020

Может быть, нам нужно Reduce в вектор после выполнения сравнения

Reduce(`|`, Map(function(x, y) seq_len(k) %in% x:y , vector1, vector2))
#[1]  TRUE  TRUE  TRUE  TRUE FALSE

Или

Reduce(`|`, lapply(Map(`:`, vector1, vector2), `%in%`, x = seq_len(k)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...