signnet 1.1.0
This release fixes a number of bugs, rewrites the blockmodeling algorithms and speeds up several functions considerably. Results of signed_blockmodel() and signed_blockmodel_general() differ from earlier versions (see below).
Bug fixes
-
as_adj_complex()now respects theattrargument and works with named vertices. This also fixeslaplacian_matrix_complex(),as_incidence_complex()andcomplex_walks()for attributes other than"type". -
laplacian_matrix_signed(sparse = TRUE)no longer errors. Normalized Laplacians (signed and complex) no longer returnNaNfor isolated vertices. -
sample_islands_signed()always returnsislands.n * islands.sizevertices (previously failed when the highest-numbered vertices had no edges). -
balance_score(method = "walk")no longer overflows toNaNon dense networks.balance_score(method = "triangles")returnsNAfor networks without triangles. -
triad_census_signed()returns the census in canonical order. -
eigen_centrality_signed()returns a real vector for directed networks (or errors if the dominant eigenvalue is complex). -
ggblock()colors ties correctly if only one sign is present.ggsigned(type = "complex")now usesattrfor edge colors and no longer overwrites thetypeattribute. -
as_signed_proj()handles vertex names containing"-","pos"or"neg". -
complex_walks()validatesk. -
signed_blockmodel_general()returned a membership that did not match the reported criterion, and a wrong (even negative) criterion foralpha != 0.5. The meaning ofalphanow matchessigned_blockmodel(). -
signed_blockmodel(annealing = FALSE)no longer returns the random initial partition for networks with large blocks, and it always takes the best improving move. -
signed_blockmodel()andsigned_blockmodel_general()validatek,alphaandblockmat(square, symmetric for undirected networks).
Maintenance
- Signed adjacency and incidence matrices are built internally instead of using the deprecated
attrargument of igraph. Values of multiple edges are still summed. - Shared input validation. Errors no longer include the internal call.
- Triad census lookup tables moved from the R source to internal data (
data-raw/triad_tables.R). - Removed unused C++ code and added
src/Makevars. -
sample_gnp_signed()andsample_bipartite_signed()validatep_neg. - Added examples for
ggblock(),ggsigned()andfrustration_exact(). - Requires R >= 3.5.
Performance
-
count_signed_triangles(),signed_triangles()andcount_complex_triangles()are vectorized (several hundred times faster on networks with many triangles). -
as_incidence_complex()anddegree_signed()are vectorized and use sparse matrices.complex_walks()is about twice as fast. -
graph_circular_signed()computes arc lengths directly from the sampled angles, which also avoidsNaNs from rounding errors. - Both blockmodeling functions share a new C++ implementation (greedy local search and simulated annealing) that no longer copies the adjacency matrix for every move.
signed_blockmodel(annealing = TRUE)no longer usesstats::optim()and is about 25x faster.
signnet 1.0.4
CRAN release: 2024-01-08
- fix deprecated support of adjacency matrices with character values #26
signnet 1.0.2
CRAN release: 2023-09-08
- fixed a bug in
signed_triangles()that resulted in wrong vertex ids (#20)
signnet 1.0.1
CRAN release: 2023-01-27
- fixed an error which occurs with the new version of igraph (https://github.com/igraph/rigraph/pull/633)
signnet 1.0.0
CRAN release: 2022-12-22
- added code of conduct
- added contributing guide
- added
frustration_exact()to vignette - added utility functions
is_signed,graph_from_adjacency_matrix_signed, andgraph_from_edgelist_signed() - added random graph models
sample_gnp_signed(),sample_bipartite_signed()
signnet 0.8.0
CRAN release: 2022-02-13
- added
frustration_exact()to compute the exact number of frustrated edges - fixed issue with aggregate on r-devel
signnet 0.7.1
CRAN release: 2021-04-28
- fixed #7
- fixed copy paste error in
as_unsigned_2mode() - fixed aggregate error in
as_signed_proj()
signnet 0.6.0
CRAN release: 2020-08-13
- added
avatardataset - speed up of blockmodeling for larger networks
signnet 0.5.3
CRAN release: 2020-06-30
- fixed issue in
complex_walks() - fixed faulty calculation of directed
pn_index()
