J'ai un graphe biparti et une trame de données avec chaque rangée associée à chaque sommet du premier côté du graphe. Le graphique n'est pas connecté et quand je trouve le plus grand composant du graphique, je dois sous-estimer le cadre de données (ce qui ne me donne pas la bonne réponse). Une autre option possible est de définir les lignes de la trame de données comme l'attribut des sommets du premier côté du graphique (dont je ne sais pas comment le faire)! Voici un exemple de jouet:Définition d'un attribut vectoriel pour les sommets d'un mode d'un graphe biparti
edgelist = matrix(c("A","a","A","b","B","b","C","c","D","c"),ncol=2,byrow=T)
bg <- graph.data.frame(edgelist, directed=F)
V(bg)$type <- V(bg)$name %in% edgelist[,1]
summary(bg)
V(bg)[V(bg)$type==1]
df = data.frame(id=c("A","B","C","D"), x=runif(4,10,50), y=sample(4), z=rnorm(4))
gclust = clusters(bg)
numClust = gclust$no
numLCC = gclust$csize[1]
bg2 = induced.subgraph(bg, which(gclust$membership ==which.max(gclust$csize)))
remained_set1 <- V(bg2)[V(bg2)$type==1]
df[as.character(df[,1])%in%remained_set1,] # wrong answer
Je reçois la même chose. c'est-à-dire [1] id x y z <0 rows> (ou 0 longueur row.names) – mathlover
Vraiment? Vous avez copié et collé en utilisant les données d'exemple ci-dessus? Quelle version d'igraph vous utilisez? Cela a été testé avec 'igraph_1.1.2'. – MrFlick
Oui, le mien est igraph_0.7.1. Je suppose que mon igraph est foiré. Je pourrais avoir besoin de mettre à jour mon R puisque lorsque j'installe igraph, cette version est installée. J'ai posé cette question hier https://stackoverflow.com/questions/45892699/r-igraph-graph-from-incidence-matrix-and-graph-from-adjacency-matrix-dont?noredirect=1#comment78760630_45892699 – mathlover