Я пытаюсь реализовать конкретную c графовую сеть, в которой все элементы правого столбца должны быть связаны со всеми элементами левого столбца, не будучи связанными между собой.
Предположим, что таблица выглядит следующим образом:
table=data.frame(matrix(c("A","B","A","C","B","D","1","2","3","1","4","2"),ncol=2))
colnames(table)=c("gene","enhancer")
print(table)
#gene enhancer
#1 A 1
#2 B 2
#3 A 3
#4 C 1
#5 B 4
#6 D 2
Здесь я хочу такие сети, как (A - 1, C - 1), (B - 2, D-- 2), (A - 3) и (B - 4).
Если я использую пакет igraph напрямую, у меня есть сети с косвенными краями, и я не хочу этого.
По сути, я хочу иметь подграф большего графа, в котором все гены связаны со всеми энхансерами.
Мне уже удалось создать нужные сети для связи один-один, но я не могу создать ее для более сложные отношения.
Я пытался использовать функции dplyr с group_split и group_keys для извлечения связанных элементов друг из друга. Я также использовал функцию aggregate .
Я не могу этого сделать, возможно, я слишком обдумал свою проблему, но она не кажется действительно тривиальной.
Как мне этого добиться?