From fd5be8b129d7d5384533f8b83068b7146eb18d6b Mon Sep 17 00:00:00 2001
From: "aviator-app[bot]" Creating a graphWe can print the graph to get a summary of its nodes and edges:
g
## IGRAPH c2f366d UN-- 10 2 --
+## IGRAPH e78d505 UN-- 10 2 --
## + attr: name (v/c)
-## + edges from c2f366d (vertex names):
+## + edges from e78d505 (vertex names):
## [1] 1--2 1--5
This means: Undirected Named graph
with 10 vertices and 2 edges, with the
@@ -169,7 +169,7 @@
Creating a graph
summary(g)
-## IGRAPH c2f366d UN-- 10 2 --
+## IGRAPH e78d505 UN-- 10 2 --
## + attr: name (v/c)
The same function make_graph
can create some notable
graphs by just specifying their name. For example you can create the
@@ -247,9 +247,9 @@
Adding/deleting vertices and edgesg <- g %>% add_edges(edges=c(1,34)) %>% add_vertices(3) %>%
add_edges(edges=c(38,39, 39,40, 40,38, 40,37))
g
-## IGRAPH 70fe150 U--- 40 86 -- Zachary
+## IGRAPH 110b9c0 U--- 40 86 -- Zachary
## + attr: name (g/c)
-## + edges from 70fe150:
+## + edges from 110b9c0:
## [1] 1-- 2 1-- 3 1-- 4 1-- 5 1-- 6 1-- 7 1-- 8 1-- 9 1--11 1--12
## [11] 1--13 1--14 1--18 1--20 1--22 1--32 2-- 3 2-- 4 2-- 8 2--14
## [21] 2--18 2--20 2--22 2--31 3-- 4 3-- 8 3--28 3--29 3--33 3--10
@@ -332,7 +332,7 @@ Constructing graphs
graph1 <- make_tree(127, 2, mode = "undirected")
summary(g)
-## IGRAPH 7a34795 U--- 5 3 -- Ring graph
+## IGRAPH 01abd09 U--- 5 3 -- Ring graph
## + attr: name (g/c), mutual (g/l), circular (g/l)
This generates a regular tree graph with 127 vertices, each vertex
having two children. No matter how many times you call
@@ -349,7 +349,7 @@
Constructing graphs
graph1 <- sample_grg(100, 0.2)
summary(graph1)
-## IGRAPH 8f894ac U--- 100 521 -- Geometric random graph
+## IGRAPH dfa7802 U--- 100 533 -- Geometric random graph
## + attr: name (g/c), radius (g/n), torus (g/l)
This generates a geometric random graph: n points are chosen
randomly and uniformly inside the unit square and pairs of points closer
@@ -400,7 +400,7 @@
Setting and retrieving attributesV(g)$gender <- c("f", "m", "f", "m", "m", "f", "m")
E(g)$is_formal <- c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE)
summary(g)
-## IGRAPH 9ce2af7 UN-- 7 9 --
+## IGRAPH c3b2ab7 UN-- 7 9 --
## + attr: name (v/c), age (v/n), gender (v/c), is_formal (e/l)
V
and E
are the standard way to obtain a
sequence of all vertices and edges, respectively. This assigns an
@@ -442,7 +442,7 @@
Setting and retrieving attributes
V(g)$name[1:3] <- c("Alejandra", "Bruno", "Carmina")
V(g)
-## + 7/7 vertices, named, from 9ce2af7:
+## + 7/7 vertices, named, from c3b2ab7:
## [1] Alejandra Bruno Carmina Frank Dennis Esther George
To delete attributes:
@@ -554,12 +554,12 @@ Selecting vertices
seq <- V(graph)[2, 3, 7]
seq
-## + 3/10 vertices, from 7165a87:
+## + 3/10 vertices, from be4cbd6:
## [1] 2 3 7
seq <- seq[1, 3] # filtering an existing vertex set
seq
-## + 2/10 vertices, from 7165a87:
+## + 2/10 vertices, from be4cbd6:
## [1] 2 7
Selecting a vertex that does not exist results in an error:
@@ -655,12 +655,12 @@ Selecting edges
E(g)[.from(3)]
-## + 4/9 edges from 9ce2af7 (vertex names):
+## + 4/9 edges from c3b2ab7 (vertex names):
## [1] Alejandra--Carmina Carmina --Frank Carmina --Dennis Carmina --Esther
Of course it also works with vertex names:
E(g)[.from("Carmina")]
-## + 4/9 edges from 9ce2af7 (vertex names):
+## + 4/9 edges from c3b2ab7 (vertex names):
## [1] Alejandra--Carmina Carmina --Frank Carmina --Dennis Carmina --Esther
Using .to
filters edge sequences based on the target
vertices. This is different from .from
if the graph is
@@ -675,7 +675,7 @@
Selecting edges
-## + 3/9 edges from 9ce2af7 (vertex names):
+## + 3/9 edges from c3b2ab7 (vertex names):
## [1] Carmina--Dennis Carmina--Esther Dennis --Esther
To make the %--%
operator work with names, you can build
string vectors containing the names and then use these vectors as
@@ -694,7 +694,7 @@
Selecting edges## [1] "Alejandra" "Carmina" "Esther"
-## + 5/9 edges from 9ce2af7 (vertex names):
+## + 5/9 edges from c3b2ab7 (vertex names):
## [1] Alejandra--Bruno Alejandra--Frank Carmina --Frank Carmina --Dennis
## [5] Dennis --Esther
diff --git a/articles/igraph_ES.html b/articles/igraph_ES.html
index df5e93c399..de8991c999 100644
--- a/articles/igraph_ES.html
+++ b/articles/igraph_ES.html
@@ -159,9 +159,9 @@ Crear un grafo
g
-## IGRAPH c737f7c UN-- 10 2 --
+## IGRAPH 7d750fb UN-- 10 2 --
## + attr: name (v/c)
-## + edges from c737f7c (vertex names):
+## + edges from 7d750fb (vertex names):
## [1] 1--2 1--5
Esto significa: grafo no dirigido (Undirected) con
10 vértices y 2 aristas, que se
@@ -173,7 +173,7 @@
Crear un grafo
summary(g)
-## IGRAPH c737f7c UN-- 10 2 --
+## IGRAPH 7d750fb UN-- 10 2 --
## + attr: name (v/c)
También make_graph
puede crear algunos grafos destacados
con sólo especificar su nombre. Por ejemplo, puedes generar el grafo que
@@ -257,9 +257,9 @@
Añadir y borrar vértices y arist
g <- g %>% add_edges(edges=c(1,34)) %>% add_vertices(3) %>%
add_edges(edges=c(38,39, 39,40, 40,38, 40,37))
g
-## IGRAPH 0f74521 U--- 40 86 -- Zachary
+## IGRAPH c573aff U--- 40 86 -- Zachary
## + attr: name (g/c)
-## + edges from 0f74521:
+## + edges from c573aff:
## [1] 1-- 2 1-- 3 1-- 4 1-- 5 1-- 6 1-- 7 1-- 8 1-- 9 1--11 1--12
## [11] 1--13 1--14 1--18 1--20 1--22 1--32 2-- 3 2-- 4 2-- 8 2--14
## [21] 2--18 2--20 2--22 2--31 3-- 4 3-- 8 3--28 3--29 3--33 3--10
@@ -346,7 +346,7 @@ Construcción de grafos
graph1 <- make_tree(127, 2, mode = "undirected")
summary(g)
-## IGRAPH 118feb4 U--- 5 3 -- Ring graph
+## IGRAPH 3d8477b U--- 5 3 -- Ring graph
## + attr: name (g/c), mutual (g/l), circular (g/l)
Esto genera un grafo regular en forma de árbol con 127 vértices, cada
vértice con dos hijos. No importa cuántas veces llames a
@@ -363,7 +363,7 @@
Construcción de grafos
graph1 <- sample_grg(100, 0.2)
summary(graph1)
-## IGRAPH a9592a9 U--- 100 526 -- Geometric random graph
+## IGRAPH 6e3ab6f U--- 100 491 -- Geometric random graph
## + attr: name (g/c), radius (g/n), torus (g/l)
Esto genera un grafo geométrico aleatorio: Se eligen n
puntos de forma aleatoria y uniforme dentro del espacio métrico, y los
@@ -416,7 +416,7 @@
Establecer y recuperar atributosV(g)$gender <- c("f", "m", "f", "m", "m", "f", "m")
E(g)$is_formal <- c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE)
summary(g)
-## IGRAPH c4802ef UN-- 7 9 --
+## IGRAPH ada3294 UN-- 7 9 --
## + attr: name (v/c), age (v/n), gender (v/c), is_formal (e/l)
V
y E
son la forma estándar de obtener una
secuencia de todos los vértices y aristas respectivamente. Esto asigna
@@ -460,7 +460,7 @@
Establecer y recuperar atributos
V(g)$name[1:3] <- c("Alejandra", "Bruno", "Carmina")
V(g)
-## + 7/7 vertices, named, from c4802ef:
+## + 7/7 vertices, named, from ada3294:
## [1] Alejandra Bruno Carmina Frank Dennis Esther George
Para eliminar atributos:
@@ -575,12 +575,12 @@ Selección de vértices
seq <- V(graph)[2, 3, 7]
seq
-## + 3/10 vertices, from 41af652:
+## + 3/10 vertices, from b1c0d90:
## [1] 2 3 7
seq <- seq[1, 3] # filtrar un conjunto de vértices existente
seq
-## + 2/10 vertices, from 41af652:
+## + 2/10 vertices, from b1c0d90:
## [1] 2 7
Al seleccionar un vértice que no existe se produce un error:
@@ -674,12 +674,12 @@ Selección de aristas
E(g)[.from(3)]
-## + 4/9 edges from c4802ef (vertex names):
+## + 4/9 edges from ada3294 (vertex names):
## [1] Alejandra--Carmina Carmina --Frank Carmina --Dennis Carmina --Esther
Por supuesto, también funciona con nombres de vértices:
E(g)[.from("Carmina")]
-## + 4/9 edges from c4802ef (vertex names):
+## + 4/9 edges from ada3294 (vertex names):
## [1] Alejandra--Carmina Carmina --Frank Carmina --Dennis Carmina --Esther
Al usar .to
, se filtran la serie de aristas en función
de los vértices de destino o diana. Esto es diferente de
@@ -696,7 +696,7 @@
Selección de aristas
-## + 3/9 edges from c4802ef (vertex names):
+## + 3/9 edges from ada3294 (vertex names):
## [1] Carmina--Dennis Carmina--Esther Dennis --Esther
Para que el operador %--%
funcione con nombres, puedes
construir vectores de caracteres que contengan los nombres y luego
@@ -716,7 +716,7 @@
Selección de aristas## [1] "Alejandra" "Carmina" "Esther"
-## + 5/9 edges from c4802ef (vertex names):
+## + 5/9 edges from ada3294 (vertex names):
## [1] Alejandra--Bruno Alejandra--Frank Carmina --Frank Carmina --Dennis
## [5] Dennis --Esther
diff --git a/articles/igraph_ES_files/figure-html/unnamed-chunk-17-1.png b/articles/igraph_ES_files/figure-html/unnamed-chunk-17-1.png
index c6a7316f0492d823fd52721feb1f4c37678eec8b..2c0b05bfddf3f5148aee55fca24738eb2794a1f7 100644
GIT binary patch
literal 37810
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