Comment afficher la liste de tous les graphique sommet des attributs de R?
Je suis en utilisant le igraph paquet dans R.
Je voudrais associer des données à chaque vertex, par exemple, par l'ajout de l'id et la description des attributs de chacun. Les attributs sont déterminés au moment de l'exécution. J'ai un couple de questions connexes sur la façon de définir et d'obtenir ces données.
Pour définir un vertex id-je utiliser (où g
est un graphe):
> set.vertex.attribute(g,'id',1,'first_id') # etc
Je m'attendais à être en mesure de lire les attributs de retour avec:
> get.vertex.attribute(g,'id',1)
Mais cette méthode retourne NULL. Suis-je en train de faire quelque chose de mal?
De plus, la fonction avec la get.vertex.attribute
d'appel n'a pas accès à la liste des noms d'attribut. Comment puis-je extraire les noms d'attribut à partir du graphique g
?
Enfin, je tiens à mettre/obtenir les valeurs des attributs à partir de/dans une liste nommée. Est-il un moyen simple de le faire sans en boucle par tous les sommets et de l'attribut et de l'application de set.
- ou get.vertex.attribute
?
merci!
OriginalL'auteur Racing Tadpole | 2013-11-15
Vous devez vous connecter pour publier un commentaire.
Semble que vous devez affecter les résultats de
set.vertex.attribute
retour àg
comme suit:Comme l'aide à
?get.vertex.attribute
dit:En outre, à partir du même fichier d'aide, il y a...
À partir d'un rapide coup d'œil il ne semble pas être une fonction simple d'écrire dans/le sommet attributs en masse. Vous pouvez concocter quelque chose comme cela:
Il doit être une nouvelle fonctionnalité, mais la commande suivante est très pratique pour l'extraction de tous les vertex de données d'attribut: obtenir.les données.image()
OriginalL'auteur thelatemail
Utiliser la syntaxe suivante pour attribuer vertex attributs:
Cette syntaxe vous permet également de récupérer ou définir un sommet de l'attribut pour tous les sommets; omettez simplement l'indexation:
Cela fonctionne bien, mais pouvez-vous m'aider avec ça?: Je n'ai que le nom de l'attribut dans une variable, par exemple idName = "id". Bien que
V(g)$id
fonctionne bien,V(g)[[idName]]
me donne l'erreurError in V(g)[[idName]] : subscript out of bounds
. Comment dois-je faire référence à l'aide de idName? Merci!Je ne suis pas un expert dans R, donc je ne sais pas s'il existe une façon plus simple, mais après quelques essais, j'ai trouvé que cela fonctionne:
eval(parse(text=paste("V(g)$", varname, sep="")))
. En fait cela crée une chaîne de caractères contenant l'expression à évaluer, l'analyse et appelle ensuiteeval
pour évaluer l'expression.Non, vous ne pouvez pas faire cela avec
V(g)$
. C'est en fait la même avec la plaine des listes, vous ne pouvez pas fairelist$element
sielement
est un nom de variable, soit. Dans ce cas, vous devez utiliserget.vertex.attribute
etset.vertex.attribute
.OriginalL'auteur Tamás