Hello, 

Suppose that the city is encoded in the "city" vertex attribute of the graph; 
for instance:

> g <- grg.game(100, 0.2)
> V(g)$city <- LETTERS[(0:99 %/% 10) + 1]

First, we get the edge list of the graph:

> el <- get.edgelist(g)

Next, we select those edges (i.e. rows) from the edge list where the endpoints 
are in the same city:

> internal.edges <- which(V(g)$city[el[,1]] == V(g)$city[el[,2]])

We then create a subgraph which consists of these edges only:

> internal.graph <- subgraph.edges(g, internal.edges)

degree(internal.graph) will then give you how many friends each person has in 
the same city, and degree(g)-degree(internal.graph) will give you how many 
friends each person has in different cities.

Best,
-- 
T.


On Friday, 28 September 2012 at 15:21, Dominik Santner (CRIE) wrote:

> Hello,
> 
> I'm using igraph with R and I have an undirected graph including vertex 
> attributes (for example the city of residence). I want to calculate the 
> degree separately for connections to actors living in the same city and 
> those living in any other city.
> 
> Example: John lives in Berlin and has 10 friends (degree of 10). 3 of 
> his friends live in Berlin, 3 in Hamburg, 2 in New York and 2 in Munich. 
> I need a result telling me that John has 3 friends in the same city and 
> 7 in any other city.
> 
> Thanks
> 
> Dominik
> 
> _______________________________________________
> igraph-help mailing list
> [email protected] (mailto:[email protected])
> https://lists.nongnu.org/mailman/listinfo/igraph-help




_______________________________________________
igraph-help mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/igraph-help

Reply via email to