Find and remove unconnected vertices from the graph.

isolated(
  graph,
  undirected = getOption("diffnet.undirected", FALSE),
  self = getOption("diffnet.self", FALSE)
)

drop_isolated(
  graph,
  undirected = getOption("diffnet.undirected", FALSE),
  self = getOption("diffnet.self", FALSE)
)

Arguments

graph

Any class of accepted graph format (see netdiffuseR-graphs).

undirected

Logical scalar. When TRUE only the lower triangle of the adjacency matrix will considered (faster).

self

Logical scalar. When TRUE autolinks (loops, self edges) are allowed (see details).

Value

When graph is an adjacency matrix:

isolated

an matrix of size \(n\times 1\) with 1's where a node is isolated

drop_isolated

a modified graph excluding isolated vertices.

Otherwise, when graph is a list

isolated

an matrix of size \(n\times T\) with 1's where a node is isolated

drop_isolated

a modified graph excluding isolated vertices.

See also

Other data management functions: diffnet-class, edgelist_to_adjmat(), egonet_attrs(), survey_to_diffnet()

Author

George G. Vega Yon

Examples

# Generating random graph
set.seed(123)
adjmat <- rgraph_er()

# Making nodes 1 and 4 isolated
adjmat[c(1,4),] <- 0
adjmat[,c(1,4)] <- 0
adjmat
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>   [[ suppressing 10 column names ‘1’, ‘2’, ‘3’ ... ]]
#>                       
#> 1  . . . . . . . . . .
#> 2  . . . . . . . . . .
#> 3  . . . . . . 1 . . .
#> 4  . . . . . . . . . .
#> 5  . . . . . . . . . .
#> 6  . . . . . . . . . .
#> 7  . . . . . . . . . .
#> 8  . . . . . . . . . .
#> 9  . . . . . . . . . .
#> 10 . . . . . . . . . .

# Finding isolated nodes
iso <- isolated(adjmat)
iso
#>  [1]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

# Removing isolated nodes
drop_isolated(adjmat)
#> 1 x 1 sparse Matrix of class "dgCMatrix"
#>   3
#> 3 .


# Now with a dynamic graph
graph <- rgraph_er(n=10, t=3)

# Making 1 and 5 isolated
graph <- lapply(graph, "[<-", i=c(1,5), j=1:10, value=0)
graph <- lapply(graph, "[<-", i=1:10, j=c(1,5), value=0)
graph
#> $`1`
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>   [[ suppressing 10 column names ‘1’, ‘2’, ‘3’ ... ]]
#>                       
#> 1  . . . . . . . . . .
#> 2  . . . . . . . . . .
#> 3  . . . . . . . . . .
#> 4  . . . . . . . . . .
#> 5  . . . . . . . . . .
#> 6  . . . . . . . . . .
#> 7  . . . . . . . . . .
#> 8  . . . . . . . . . .
#> 9  . . . . . . . . . .
#> 10 . . . . . . . . . .
#> 
#> $`2`
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>   [[ suppressing 10 column names ‘1’, ‘2’, ‘3’ ... ]]
#>                       
#> 1  . . . . . . . . . .
#> 2  . . . . . . . . . .
#> 3  . . . . . . . . . .
#> 4  . . . . . . . . . .
#> 5  . . . . . . . . . .
#> 6  . . . . . . . . . .
#> 7  . . . . . . . . . .
#> 8  . . . . . . . . . .
#> 9  . . . . . . . . . .
#> 10 . . . . . . . . . .
#> 
#> $`3`
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>   [[ suppressing 10 column names ‘1’, ‘2’, ‘3’ ... ]]
#>                       
#> 1  . . . . . . . . . .
#> 2  . . . . . . . . . .
#> 3  . . . . . . . . . .
#> 4  . . . . . . . . . .
#> 5  . . . . . . . . . .
#> 6  . . . . . . . . . .
#> 7  . . 1 . . . . . . .
#> 8  . . . . . . . . . .
#> 9  . . . . . . . . . .
#> 10 . . . . . . . . . .
#> 

isolated(graph)
#>  [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE
drop_isolated(graph)
#> $`1`
#> 1 x 1 sparse Matrix of class "dgCMatrix"
#>   7
#> 7 .
#> 
#> $`2`
#> 1 x 1 sparse Matrix of class "dgCMatrix"
#>   7
#> 7 .
#> 
#> $`3`
#> 1 x 1 sparse Matrix of class "dgCMatrix"
#>   7
#> 7 .
#>