Я начинающий программист, и у меня возникают проблемы с пониманием ввода / вывода вложенных циклов for для нескольких списков (или векторов) в R. Я уверен, что на этот вопрос ответили в другом месте (если да, предоставьте ссылку) , но я не могу найти хороший ответ в Интернете, и было бы полезно для меня (и я уверен, что другие начинающие программисты / R-пользователи) объяснить его в простых терминах.
В частности, я хотел бы знать, как правильно индексировать элементы списка, чтобы сделать условие основанным на некоторой взаимосвязи между обоими списками, а затем добавить элементы одного списка, соответствующие этому условию, в новый список.
Другими словами, я хотел бы пройтись по каждому элементу в списке 'a', проверить, равен ли он == для любого / всех элементов в списке 'b', и, если TRUE, добавить список ' 'элемент в новый список' c '.
Это упрощенный пример того, что я пробовал:
a <- as.list(c(1,2,3,11,12))
b <- as.list(c(1,2,3,4,5,6,7,8,9,10))
c <- list()
index <- 1
for (i in 1:length(a)){
for (j in 1:length(b)){
if (a[[i]] == b[[j]]) next
c[[index]] <- a[[i]]
index <- index + 1
}}
Результатом является список из 47 элементов. Результат, который я пытаюсь получить, следующий:
c
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
Что не так с тем, как я проиндексировал элементы в цикле?