Мой код работает, но я использую вложенный цикл for, который не может быть лучшим способом сделать это. Есть ли более быстрый способ проверить, содержит ли список векторов какие-либо другие векторы, которые являются подмножествами другого? Например, у меня есть список векторов с именем «a» с произвольным числом векторов:
a = list()
a[[1]] = c(1, 2)
a[[2]] = c(2, 3, 5)
a[[3]] = c(1, 2, 4, 6)
a[[4]] = c(9, 4)
Я хочу проверить, является ли [[n]] подмножеством любого другого вектора в списке. Так что в моем примере только [[1]] является подмножеством [[3]]. Вот мой код.
for (i in 1:length(a)) {
for (j in 1:length(a)) {
if(all(a[[i]] %in% a[[j]]) && i != j) {
#do stuff...
}
}
}
По сути, он спрашивает, содержит ли список повторяющиеся векторы. Спасибо за любую помощь.