У меня есть список списков в R. В общем списке 15 подсписков (набор имен генов). Я хочу иметь возможность искать имя гена, и чтобы R возвращал имя подсписка, в котором находится имя гена.
Приведенный ниже код создает объект класса «список», содержащий больше объектов списка классов (например, элементы $ TwoThree).
Я пытался использовать list.search () в нескольких формах, а также использовать двойные скобки и т. Д.
break.venn <- list(One = dds.break1.genes.df$GENES,
Two = dds.break2.genes.df$GENES,
Three = dds.break3.genes.df$GENES,
Four = dds.break4.genes.df$GENES)
combs <-
unlist(lapply(1:length(break.venn),
function(j) combn(names(break.venn), j, simplify = FALSE)),
recursive = FALSE)
names(combs) <- sapply(combs, function(i) paste0(i, collapse = ""))
str(combs)
elements <-
lapply(combs, function(i) setdiff(break.venn[i], break.venn[setdiff(names(break.venn), i)]))
РЕДАКТИРОВАТЬ: Вот что я наконец-то сделал, чтобы решить все это. Моей целью был список компонентов диаграммы Венна и генов, которые попадают в каждую категорию диаграмм Венна. Затем я хотел выяснить, к какой категории вен относится определенный ген:
GOI <- "MYB90"
ItemsList <- venn(xx.1, show.plot=FALSE)
attributes <- attr(ItemsList,"intersections")
t1 <- list.search(attributes, GOI %in% .)
name <- names(t1)
cat(GOI, "is contained in", name)