J'ai un problème similaire à celui-ci: Reading adjacency lists with isolated nodes using igraphcréer igraph avec des noeuds isolés
Je veux tracer les noeuds où certains ont aucune relation. Mais pour une raison quelconque la solution mentionnée dans le fil ne fonctionne pas au-dessus
mes données
data <- data.frame(ID = c(143918,176206,210749,219170,247818,314764,321459,335945,339637,700689,712607,712946,735907,735907,735907,735907,735907,735907,735908,735908,735908,735908,735908,735908,735910,735911,735912,735913,746929,746929,747540,755003,767168,775558,776656,794173,794175,807493), relation = c(111098,210749,176206,NA,NA,NA,NA,NA,NA,807493,NA,NA,735908,735910,735911,735912,735913,767168,735907,735910,735911,735912,735913,767168,NA,NA,NA,NA,NA,100723,NA,NA,NA,776656,775558,NA,NA,700689))
Cela devrait se traduire par une intrigue qui montre aussi des nœuds isolés:
v<-unique(data[,1])
e <- na.omit(data)
g<-graph.data.frame(e, vertices = v, directed = T)
plot(g)
Pour une raison quelconque, je obtenir l'erreur: "Certains noms de vertex dans la liste des arêtes ne sont pas listés dans le cadre de données vertex".
J'espère que quelqu'un peut me dire ce que je fais mal et comment résoudre ce problème. Merci
EDIT: paqmo répond à ma question, merci!
Cependant, ma tâche nécessite une approche différente. Les ID qui sont dans les relations, mais qui sont manquants dans la première ligne, sont des personnes dans un emplacement différent. Ceux-ci devraient être omis, tout en maintenant chaque personne isolée de la première rangée. Ma solution pour cela utilise data.table pour l'instant:
v <- unique(c(data[,1]))
v <- as.data.frame(v)
e <- data
setDT(v);setDT(e)
setkey(v)
setkey(e, relation)
e <- e[v]
e <- na.omit(e)
g<-graph.data.frame(e, vertices = v, directed = T)
plot(g)
tout conseil pour une solution meilleure/plus efficace serait la bienvenue.
J'essaie d'éviter de poser une autre question à ce sujet, donc: Comment votre code suivant pour être appliqué 2 data.frames (un edgelist et Nodelist stockées séparément des données qui doivent être associées à 'graph.data.frame'):' v <- unique (c (données [, 1], données [, 2])) #Définir v des deux colonnes dans les données v <- na.omit (v) e <- na.omit (données) '? –