Find and remove unconnected vertices from the graph.
Any class of accepted graph format (see netdiffuseR-graphs
).
Logical scalar. When TRUE
only the lower triangle of the adjacency matrix will considered (faster).
Logical scalar. When TRUE
autolinks (loops, self edges) are allowed (see details).
When graph
is an adjacency matrix:
an matrix of size \(n\times 1\) with 1's where a node is isolated
a modified graph excluding isolated vertices.
Otherwise, when graph
is a list
an matrix of size \(n\times T\) with 1's where a node is isolated
a modified graph excluding isolated vertices.
Other data management functions:
diffnet-class
,
edgelist_to_adjmat()
,
egonet_attrs()
,
survey_to_diffnet()
# 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 .
#>