Learn R Programming

network (version 1.19.0)

is.adjacent: Determine Whether Two Vertices Are Adjacent

Description

is.adjacent returns TRUE iff vi is adjacent to vj in x. Missing edges may be omitted or not, as per na.omit.

Usage

is.adjacent(x, vi, vj, na.omit = FALSE)

Value

A logical, giving the status of the (i,j) edge

Arguments

x

an object of class network

vi

a vertex ID

vj

a second vertex ID

na.omit

logical; should missing edges be ignored when assessing adjacency?

Author

Carter T. Butts buttsc@uci.edu

Details

Vertex \(v\) is said to be adjacent to vertex \(v'\) within directed network \(G\) iff there exists some edge whose tail set contains \(v\) and whose head set contains \(v'\). In the undirected case, head and tail sets are exchangeable, and thus \(v\) is adjacent to \(v'\) if there exists an edge such that \(v\) belongs to one endpoint set and \(v'\) belongs to the other. (In dyadic graphs, these sets are of cardinality 1, but this may not be the case where hyperedges are admitted.)

If an edge which would make \(v\) and \(v'\) adjacent is marked as missing (via its na attribute), then the behavior of is.adjacent depends upon na.omit. If na.omit==FALSE (the default), then the return value is considered to be NA unless there is also another edge from \(v\) to \(v'\) which is not missing (in which case the two are clearly adjacent). If na.omit==TRUE, on the other hand the missing edge is simply disregarded in assessing adjacency (i.e., it effectively treated as not present). It is important not to confuse “not present” with “missing” in this context: the former indicates that the edge in question does not belong to the network, while the latter indicates that the state of the corresponding edge is regarded as unknown. By default, all edge states are assumed “known” unless otherwise indicated (by setting the edge's na attribute to TRUE; see attribute.methods).

Adjacency can also be determined via the extraction/replacement operators. See the associated man page for details.

References

Butts, C. T. (2008). “network: a Package for Managing Relational Data in R.” Journal of Statistical Software, 24(2). tools:::Rd_expr_doi("10.18637/jss.v024.i02")

Wasserman, S. and Faust, K. 1994. Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.

See Also

get.neighborhood, network.extraction, attribute.methods

Examples

Run this code

#Create a very simple graph
g<-network.initialize(3)
add.edge(g,1,2)
is.adjacent(g,1,2)  #TRUE
is.adjacent(g,2,1)  #FALSE
g[1,2]==1           #TRUE
g[2,1]==1           #FALSE

Run the code above in your browser using DataLab