Extract Egocentric Networks from Complete Network Data
ego.extract
takes one or more input graphs (dat
) and returns a list containing the egocentric networks centered on vertices named in ego
, using adjacency rule neighborhood to define inclusion.
ego.extract(dat, ego = NULL, neighborhood = c("combined", "in", "out"))
dat |
one or more graphs. |
ego |
a vector of vertex IDs, or |
neighborhood |
the neighborhood to use. |
The egocentric network (or “ego net”) of vertex v in graph G is defined as G[v U N(v)] (i.e., the subgraph of G induced by v and its neighborhood). The neighborhood employed by ego.extract
is selected by the eponymous argument: "in"
selects in-neighbors, "out"
selects out-neighbors, and "combined"
selects all neighbors. In the event that one of the vertices selected by ego
has no qualifying neighbors, ego.extract
will return a degenerate (1 by 1) adjacency matrix containing that individual's diagonal entry.
Vertices within the returned matrices are maintained in their original order, save for ego (who is always listed first). The ego nets themselves are returned in the order specified in the ego
parameter (or their vertex order, if no value was specified).
ego.extract
is useful for finding local properties associated with particular vertices. To compute functions of neighbors' covariates, see gapply
.
A list containing the adjacency matrices for the ego nets of each vertex in ego
.
Carter T. Butts buttsc@uci.edu
Wasserman, S. and Faust, K. (1994). Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.
#Generate a sample network g<-rgraph(10,tp=1.5/9) #Extract some ego nets g.in<-ego.extract(g,neighborhood="in") g.out<-ego.extract(g,neighborhood="out") g.comb<-ego.extract(g,neighborhood="in") #View some networks g.comb #Compare ego net size with degree all(sapply(g.in,NROW)==degree(g,cmode="indegree")+1) #TRUE all(sapply(g.out,NROW)==degree(g,cmode="outdegree")+1) #TRUE all(sapply(g.comb,NROW)==degree(g)/2+1) #Usually FALSE! #Calculate egocentric network density ego.size<-sapply(g.comb,NROW) if(any(ego.size>2)) sapply(g.comb[ego.size>2],function(x){gden(x[-1,-1])})
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.