Learn R Programming

editrules (version 2.9.5)

adjacency: Derive adjecency matrix from collection of edits

Description

A set of edits can be represented as a graph where every vertex is an edit. Two vertices are connected if they have at least one variable in vars in common.

Usage

adjacency(
  E,
  nodetype = c("all", "rules", "vars"),
  rules = rownames(E),
  vars = getVars(E),
  ...
)

# S3 method for editmatrix adjacency( E, nodetype = c("all", "rules", "vars"), rules = rownames(E), vars = getVars(E), ... )

# S3 method for editarray adjacency( E, nodetype = c("all", "rules", "vars"), rules = rownames(E), vars = getVars(E), ... )

# S3 method for editset adjacency( E, nodetype = c("all", "rules", "vars"), rules = c(rownames(E$num), rownames(E$mixcat)), vars = getVars(E), ... )

# S3 method for editmatrix as.igraph( x, nodetype = c("all", "rules", "vars"), rules = editnames(x), vars = getVars(x), weighted = TRUE, ... )

# S3 method for editarray as.igraph( x, nodetype = c("all", "rules", "vars"), rules = editnames(x), vars = getVars(x), weighted = TRUE, ... )

# S3 method for editset as.igraph( x, nodetype = c("all", "rules", "vars"), rules = editnames(x), vars = getVars(x), weighted = TRUE, ... )

Value

the adjacency matrix of edits in E with resect to the variables in vars

Arguments

E

editmatrix, editarray or editset

nodetype

adjacency between rules, vars or both?

rules

selection of edits

vars

selection of variables

...

arguments to be passed to or from other methods

x

An object of class editmatrix, editarray or editset

weighted

see graph.adjacency

Details

adjacency returns the adjacency matrix. The elements of the matrix count the number of variables shared by the edits indicated in the row- and column names. The adjacency matrix can be converted to an igraph object with graph.adjacencyfrom the igraph package.

as.igraph converts a set of edits to an igraph object directly.

See Also

plot.editmatrix, plot.editarray, plot.editset

Examples

Run this code

## Examples with linear (in)equality edits

# load predefined edits from package
data(edits)
edits

# convert to editmatrix
E <- editmatrix(edits)

## Not run:
# (Note to reader: the Not run directive only prevents the examle commands from
# running when package is built)

# Total edit graph
plot(E)

# Graph with dependent edits
plot(E, nodetype="rules")

# Graph with dependent variables
plot(E, nodetype="vars")

# Total edit graph, but with curved lines (option from igraph package)
plot(E, edge.curved=TRUE)


# graph, plotting just the connections caused by variable 't'
plot(E,vars='t')

## End(Not run) 

# here's an example with a broken record.
r <- c(ct = 100, ch = 30, cp = 70, p=30,t=130 ) 
violatedEdits(E,r)
errorLocalizer(E,r)$searchBest()$adapt

# we color the violated edits and the variables that have to be adapted

## Not run
set.seed(1) # (for reprodicibility)
plot(E,
     adapt=errorLocalizer(E,r)$searchBest()$adapt,   
     violated=violatedEdits(E,r))
## End(Not run) 



# extract total graph (as igraph object)
as.igraph(E)

# extract graph with edges related to variable 't' and 'ch'
as.igraph(E,vars=c('t','ch'))

# extract total adjacency matrix
adjacency(E)

# extract adjacency matrix related to variables t and 'ch'
adjacency(E,vars=c('t','ch'))

## Examples with categorical edits

# generate an editarray:
E <- editarray(expression(
    age %in% c('<15','16-65','>65'),
    employment %in% c('unemployed','employed','retired'),
    salary %in% c('none','low','medium','high'),
    if (age == '<15') employment=='unemployed',
    if (salary != 'none') employment != 'unemployed',
    if (employment == 'unemployed') salary == 'none'))


## Not run:
# plot total edit graph
plot(E)

# plot with a different layout
plot(E,layout=layout.circle)

# plot edit graph, just the connections caused by 'salary'
plot(E,vars='salary')

## End(Not run)

# extract edit graph
as.igraph(E)

# extract edit graph, just the connections caused by 'salary'
as.igraph(E,vars='salary')

# extract adjacency matrix
adjacency(E)

# extract adjacency matrix, only caused by 'employment'
adjacency(E,vars='employment')





Run the code above in your browser using DataLab