Ваш код ссылается на файл "grph.graphml", которого у нас нет, поэтому я не могу использовать ваш пример. Вместо этого я буду использовать случайный график для иллюстрации.
## Generate random graph
library(igraph)
set.seed(1234)
g = erdos.renyi.game(15, 0.2)
## Your code to generate labels
random_list <- sample(c(TRUE,FALSE), gorder(g), TRUE)
V(g)$label <- random_list
Вы можете написать небольшую функцию, чтобы проверить, имеют ли концы ребра одинаковые метки, и применить ее ко всем ребрам. Затем удалите те, у которых оба конца совпадают.
SameLabel = function(e) {
V(g)[ends(g, e)[1]]$label == V(g)[ends(g, e)[2]]$label }
g2 = delete_edges(g, which(sapply(E(g), SameLabel)))
Вы можете проверить правильность своих действий, построив график.
set.seed(1066)
LO = layout_with_fr(g)
par(mfrow=c(1,2), mar=c(1,1,1,1))
plot(g, layout=LO, frame=TRUE)
plot(g2, layout=LO, frame=TRUE)
![сокращенный график](https://i.stack.imgur.com/dXfXs.png)
Некоторые из них выглядят неправильно, потому что связи между удаленными узлами идут позади других узлов противоположного типа.
person
G5W
schedule
02.03.2018
num_of_vertices
иg
, определены. - person MrFlick   schedule 03.03.2018