Modifying

  • Fixed bug in to_waves() where result was unordered

Mapping

  • graphr() now uses categorical palettes (effectively closing #60)

Measuring

  • Added net_correlation() for calculating the product-moment correlation between networks
  • Improved speed of make_network_measure by retrieving single call at parent level

Package

  • Fixed miscellaneous documentation issues, re roxygen
  • Separated out the data sections in pkgdown

Modifying

  • Added to_simplex.data.frame() and to_simplex.network()

Marking

  • Fixed bug in is_aperiodic() where it would not work in tutorial chunks

Measuring

Practicing

  • Fixed data pointers in several tutorials
  • Added glossary items to diffusion tutorial

Package

  • Improved user information in the console
    • manynet cli functions now inherit parent frame
    • Added manynet cli functions for success and progress along, seq, and nodes
  • Improved testing architecture
    • Moving to nested testthats
    • Added custom testthat function for expecting values and ignoring dimension names

Making

Modifying

  • Fixed how as_matrix() handles signed networks
  • Added as_nodelist() for extracting nodelists from networks into tibbles
  • Added to_cosine()
  • Dropped to_galois() until it can be refactored
  • Split reformatting documentation into format, reformat, and deformat groups of functions

Mapping

  • Fixed default color ordering so that red is the highlight
  • Fixed bug in graphr() where line types were inferred incorrectly
  • Improved graphr() so that layouts can now be snapped to a grid, mileage may vary
  • Improved theme handling so that it is set globally (WIP)
    • Added highlight themes
    • Added background themes
    • Added categorical themes
  • Improved configurational layouts
    • Added dyad, pentad, and hexad layouts to configurational layouts
    • Renamed quad layout to tetrad layout

Marking

Measuring

  • Added summary.network_measure() to return z-scores and p-values for measures
  • Added node_vitality() for measuring closeness vitality centrality
  • Fixed #98 by dropping scale and normalization for node_eigenvector()

Memberships

  • Improved community detection options for new users
    • Community detection algorithms now reformat networks as necessary or suggest that it be used on only the giant component
    • Added node_in_community() which runs through most salient community detection algorithms to find and return the one with the highest modularity
    • Updated documentation on resolution parameters
  • Improved node_in_regular() to inform user which census is being used
  • Renamed node_by_quad() to node_by_tetrad() to be more consistent with Greek origins
    • Restored and updated documentation about the various configurations
  • Added summary.network_motif() which returns the z-scores for the motif scores based on random or configurational networks, traces progress
  • Fixed bug in plot.network_motif() where motif names were not identified correctly, internal make_network_motif now inherits call information

Modelling

  • Added cluster_cosine() for another equivalence option
  • Added internal documentation for depth_first_recursive_search

Practicing

  • Improved how run_tute() fuzzy matched so that insertions are not as costly
  • Improved tutorials with glossary architecture
  • Updated tutorials
    • Updated community, position, and topology tutorials with glossaries, free play sections, and gifs
    • Fixed miscellaneous issues in these tutorials
    • Added faction section to community tutorial

Data

  • Added irps_wwi, a dynamic, signed network
  • Renamed ison_blogs to irps_blogs, added info
  • Renamed ison_books to irps_books, added info
  • Renamed ison_usstates to irps_usgeo, added info
  • Renamed ison_friends to fict_friends, added info and fixed directed issue
  • Renamed ison_greys to fict_greys, added info
  • Renamed ison_lotr to fict_lotr, added info
  • Renamed ison_thrones to fict_thrones, added info and some additional nodal attributes
  • Renamed ison_potter to fict_potter, added info and combined waves into single object

Package

  • Fixed errors when testing without concaveman
  • Fixed errors when plotting some examples without ggdendro

Package

  • Fixed errors when testing on extended features and Suggested packages not available

Package

  • Fixed thisRequires() bug by testing for interactivity
  • Dropped brokerage census examples

Modifying

Mapping

Package

  • Updated all tutorials with different themes to make them more distinctive
  • Updated centrality tutorial with gifs
  • Updated visualisation tutorial with a few extras

Modifying

  • Added to_dominating() for extracting the dominating tree of a given network

Mapping

  • Reworked graphr() to make function more concise and consistent (thanks @henriquesposito)
    • This allows new functionality and improves debugging moving forward

Measuring

  • Updated closeness centrality documentation
  • Improved node_eccentricity() to allow normalisation, appear in closeness documentation
  • Added node_stress() as a new betweenness-like centrality measure
  • Added node_leverage() as a new degree-like centrality measure

Making

  • All read_*() now print the command used to the console if the (default) file.choose() is used
  • Added read_gml()
  • Updated references, structure, and DOIs to make and modify documentation

Measures

  • Updated references, structure, and DOIs to centrality, diffusion, and other measures, as well as to marks, motifs, memberships, and models
  • Added more documentation on node_power()

Data

  • Added ison_dolphins
  • Added ison_books
  • Added ison_blogs

Package

  • Added progress updates, information, and unavailability errors to several functions
    • These can be silenced by setting options(manynet_verbosity ="quiet")
    • Where a feature is unavailable, users are directed to the Github issues page
  • Added console theme to color the startup and various warning or info messages

Making

  • Added create_ego() for collecting ego networks through interviews, including arguments for:
    • Indicating whether a roster should be used, otherwise follows a name generator approach
    • Indicating whether nodes should be interpreted, i.e. nodal attributes collected
    • Indicating whether ties between alters should be requested
  • Added create_motifs() for creating networks that correspond to the isomorphic subgraphs of certain size and format

Modifying

  • Improved print.mnet()
    • Prints multiplex types if available
    • Prints both nodesets for two-mode networks
  • Added add_info() for adding grand info to tidygraph objects
    • This includes the name of the network, node sets and ties, DOI, year and mode of collection
  • Fixed to_unweighted() so that it passes through unweighted networks correctly

Mapping

Marking

Measuring

Members

Motifs

  • Added plot methods for network_motif and node_motif classes that use create_motifs()
  • Added node_by_dyad() for node level dyad census
  • Added net_by_quad() for network level quad census
  • Fixed node_by_quad() to avoid oaqc dependency (#89), more flexible but slower
  • Fixed print.node_motif() to convert to tibble and add modes and names where available only upon print
    • The underlying object is still a matrix, used for equivalence and blockmodelling

Data

  • Updated ison_southern_women with grand info
  • Updated ison_laterals with reordered nodes

Package

  • Added beautiful message on startup
  • Improved error warnings, stop() replaced by cli::cli_abort()
  • Improved website structure
    • Structured make_, manip_, map_, mark_, measure_, and model_ documentation
    • Improved function overview layout for measures
  • Updated Github Actions scripts
  • Removed minMSE dependency
  • Moved roxygen2 dependency to Config/Needs/build
  • Dropped unnecessary {grDevices} and png dependencies
  • Dropped unnecessary network reexports
  • Using globalVariables
  • Improved run_tute() and extract_tute() to look for installed packages and report progress

Making

  • Added read_cran() for creating networks of package dependencies on CRAN
    • Gathers dependency graph for whole CRAN by default, but can also trace successive outgoing dependencies from a single package (speed increase depends on the package, but is nearly 9x faster for manynet)
    • Also gathers nodal information about whether compilation is required
  • Added generate_man() for generating dyad census conditional uniform graphs
  • Fixed #86 by making sure igraph::sample_islands in generate_islands() only takes a single integer and not a vector

Manipulating

  • Improved as_tidygraph() to add an additional class ‘mnet’ that is used for prettier printing
    • Uses make_mnet() (internally) for future-proofing
    • print.tbl_graph() renamed to print.mnet()
    • print.mnet() uses ‘grand’ data if available
  • Improved bind_ties() to be more flexible about the input it accepts, converting all input into the required edgelist
  • Added to_ego() for obtaining a single neighbourhood
  • Added tbl_graph and network methods for delete_nodes() and delete_ties()
  • Added examples for add_ties() and delete_ties() in documentation
  • Fixed bug in to_unnamed.igraph() when used with already unlabelled networks

Marking

  • tie_marks are now named vectors
    • Printing vectors no longer requires unique names
  • Added tie_is_path() for tracing the ties on a particular path
  • Added tie_is_triplet() for returning all the ties that are members of transitive triplets
  • Added tie_is_forbidden() for identifying ties in forbidden triads
  • Improved tie_is_transitive() efficiency, now only retrieves the edgelist once
  • Improved is_aperiodic() to remove minMSE dependency and offer a progress bar if it takes longer than 2 seconds
  • Fixed bug in tie_is_triangular() to do with altpath naming

Measuring

  • tie_measures are now named vectors
  • Added node_distance() for measuring the distance from or to particular nodes
  • Fixed #84 related to how node_degree() processed isolates in calculating strength in weighted networks

Data

  • Updated all ison_ data with new as_tidygraph()
  • Added ‘grand’ data to ison_adolescents as a test
  • Added ison_thrones on kinship arcs between Game of Thrones characters, with ‘grand’ data
  • Consolidated ison_monastery_ data into ison_monks, a single multiplex, signed, weighted, longitudinal network

Making

Marking

Manipulating

Mapping

  • Updated how graphr() plots edges in directed networks
  • Removed automatic legends for signed networks
  • Fixed other legends issues

Data

  • table_data() can now report on data from multiple packages
    • manynet and migraph are included by default, and if any are not installed they are just ignored
  • table_data() can now filter by any reported formats, such as ‘directed’ or ‘twomode’

Website

  • Added more structure to Modifying section
  • Added more structure to Mapping section

Modifying

  • as_matrix.igraph() now only draws from the “weight” attribute and not, e.g. “type”
  • Fixed bug in to_blocks() related to categorical membership variables

Marks

  • Tie marks now infer networks when used within e.g. mutate_ties()

Memberships

  • node_names() now returns names of the form “N01” etc for unlabelled networks
  • Fixed how plot.matrix() works for unlabelled networks
  • Added more on density in community tutorial

Mapping

  • British spelling arguments now appear further back in e.g. graphr()
  • Fixed how graphs() recognises ego networks so it is compatible with other splits

Mapping

  • Fixed #73 “node_color” mapping issue with graphr()
  • Fixed issues with variable name warnings in graphr()
  • Fixed #76 numeric “node_size” issues with graphr() function
  • Closed #66 so graphs() automatically uses “star” layout to plot ego networks
  • Fixed #41 so arguments for graphr(), graphs(), and grapht() also accept British spellings

Memberships

  • Fixed bugs in hierarchical community detection algorithms for unconnected networks

Package

  • Added alttext to images in the README, tutorials, and website
  • Added CRAN link to homepage
  • Updated favicons
  • Added more structure to the function overview

Making

  • Updated intro tutorial with images, exercises, questions, and more explanation and structure
  • Updated data tutorial with images, new function names, questions, and more explanation and structure
  • Updated data tutorial with more details on adding and deleting nodes, ties, and attributes
  • Updated topology tutorial with new function names and more structure

Mapping

  • Updated viz tutorial with examples of graphs() and grapht()
  • Updated viz tutorial with more details and examples on colors and theming
  • Updated viz tutorial with overview, examples, and details on layouts, including force-directed, layered, circular, spectral, and grid layouts

Measures

  • Updated centrality tutorial with images, new function names, and more structure
  • Updated centrality tutorial with more interpretation of centrality measures
  • Updated position tutorial with new function names and more structure

Memberships

  • Updated community tutorial with new function names and more structure

Package

Package

  • Updated manynet logo with stocnet GitHub address and color blind safe colorway
  • Fixed bug in diffusion tutorial because of undeclared {minMse} dependency
  • Renamed all functions starting with the network_* prefix to net_* for conciseness
  • Migrated network measures, membership, motifs, and models’ functions from migraph
  • Migrated community, position, topology, and diffusion tutorials from migraph
  • Added descriptions to tutorials

Making

  • Fixed bug in create_core() where the membership inferred when passing an existing network was incorrect
  • Added generate_configuration() for generating configuration models (including for two-mode networks)
  • play_diffusion() now includes an explicit contact argument to control the basis of exposure

Marking

Mapping

Modifying

  • to_named() now randomly generates and adds an alphabetic sequence of names, where previously this was just a random sample, which may assist pedagogical use
    • baby_names (internal) now includes a few extra “Q” and “U” names
  • Added to_correlation() that implements pairwise correlation on network
  • Added arrange_ties() for dplyr-like reordering of ties based on some attribute
  • Added to_correlation() for calculating the Pearson correlation
    • This takes a method argument for “all”, “diag”, “recip”, or “complex”
    • These are similar to functions implemented by Ron Breiger and shared by him in correspondence
  • Fixed bug in as_diff_model() where events were out of order and named

Marking

  • is_multiplex() now recognises “date”, “begin”, and “end” as reserved

Measuring

Members

Motifs

Methods

Data

  • Added ison_greys dataset, including some corrections to that published in {networkdata}
  • Updated ison_friends dataset to be explicitly longitudinal
  • Updated ison_usstates dataset with population data (Alaska and Hawaii missing)
  • Updated ison_southern_women dataset with surnames, titles, event dates, and corrected ties
  • Updated data documentation with revised multiplex definition

2024-03-15

Modifying

  • Fixed documentation issue with to_scope() for CRAN resubmission

2024-03-13

Mapping

2024-03-12

Making

Mapping

  • Closed #6 by updating how “lineage” layout works and places nodes on Y axis
  • Closed #39 by making autographr() more flexible and efficient in setting variables to aesthetics
  • Updated themes to be compatible with newer and older versions of ggplot2
  • Added “configuration” layout for small triad/quad networks

Modifying

  • Updated to_reciprocated.matrix() to consistently work with matrices

2023-12-24

Package

  • Fixed minor documentation bug in run_tute()
  • pkgdown urls now point to “stocnet/manynet”
  • Closes #34 by pushing changes to CRAN

2023-12-24

Package

  • Major overhaul of documentation
    • Moved function description up so that it appears in tooltips
    • Split documentation of many functions to provide more space for explanation
    • Moved some functions around for more thematic documentation
  • Added pkg_data() to report an overview of data contained within the package(s)
  • Updated README and DESCRIPTION with new organisational affiliation: stocnet/manynet
  • Updated tests to be consistent with future ggplot2 release

Making

Modifying

Mapping

Data

  • Renamed ison_konigsberg to ison_koenigsberg and named the bridges
  • ison_algebra now in long multiplex format
  • ison_karateka now weighted, anonymous members are named by number, and “obc” variable renamed “allegiance”
  • ison_lawfirm enlarged from 36 to 71 nodes and now consists of three multiplex, directed networks
  • ison_southern_women names are now title case
  • Added ison_hightech, a multiplex, directed network from Krackhardt 1987
  • Added four ison_monastery datasets, three of which are signed and weighted, and the other is longitudinal, from Sampson 1969 (closes #49)
  • Added six ison_potter datasets in a list of networks, from Bossaert and Meidert 2013 (closes #47)
  • Added ison_usstates data on the contiguity of US states, from Meghanathan 2017

2023-12-17

Making

  • as_tidygraph.diff_model() no longer creates names for unlabelled networks

Modifying

Mapping

  • autographr() now shapes seed, adopter, and non-adopter nodes using a parallel to migraph’s node_adoption_time() for
    • Improved guide/legend labelling and positioning
  • autographs() now colors susceptible, exposed, infected, and recovered nodes correctly
  • autographd() now colors susceptible, exposed, infected, and recovered nodes correctly

2023-12-15

Package

  • Overhaul of the README to summarise many of the unique aspects of the package (closed #36)

Making

Modifying

Mapping

Data

  • Added ison_physicians data that includes four, multiplex networks with adoption data

2023-12-06

Package

Making

Mapping

  • autographd() and autographs() can now be used for plotting diffusion models.
  • Updates to layouts
    • Updates to hierarchical layout so that node name can be specified for centering the layout
    • Updated theme_heid() layout

Data

  • Added faction attribute to ison_starwars data, thanks to coding by Yichen Shen and Tiphaine Aeby

2023-11-15

Package

  • Updated run_tute()function to “fuzzy” match tutorial names

Mapping

  • Added +.ggplot() method for visualising multiple plots in the same pane
  • Added custom theme theme_iheid for plots
  • Added custom scale_ family of functions for changing colour scales in plots
  • Updated autographr():
    • Added “center” option for hierarchy layout that places events or actors in the middle alike “bip” and “bip3” layouts
    • Added “lineage” layout that fixes node positions according to values in y axis
  • Fixed bugs with autographd() function

2023-11-02

Package

  • Fixed tutorials documentation issue for CRAN

2023-11-01

Making

  • Updated treatment of adjacency matrices in as_igraph() in accordance with upcoming updates to igraph package (closing #27)

Manipulating

  • Added to_mentoring function

Mapping

  • Fixed bugs in autographr() related to edge_size and edge_color
  • Fixed bugs and updated label placements for “circular” and “concentric” layouts for autographr()
  • Fixed issues with self-ties in autographr()
  • Updated tests for autographr()

Data

  • Added ison_friends, a one-mode network on character connections of a popular TV series

2023-10-25

Package

  • Added documentation for tutorial helper functions

Making

Manipulating

  • Fixed bug in to_redirected.tbl_graph()
  • print.tbl_graph() no longer mentions the object class

Mapping

Data

  • Added ison_starwars, a collection of seven weighted interaction networks on a popular film franchise
  • ison_networkers names are now in title case, not all caps

2023-10-19

Package

Mapping

  • Fixed remaining issues with node_group and updated documentation

2023-10-11

Package

Manipulating

  • Added to_galois() for transforming networks into partially ordered Galois lattices

Mapping

Data

  • ison_algebra now an anonymised network (again)

2023-09-17

Package

  • Fixed URL in read_

2023-09-17

Package

  • README now points to migraph earlier

Tutorials

  • Fixed various bugs in first (data) tutorial

Map

  • Fixed explicit node_shape bug

Data

  • Added ison_lawfirm data from Lazega, see documentation for more details
  • Upgraded ison_marvel data to latest igraph specification

2023-08-11

Map

  • Fixed documentation issues with map_palettes

2023-08-11

Package

  • Closed #4 by adding thisRequiresBio() helper function to download Bioconductor packages
  • Upgraded ison data to latest igraph specification
    • Added ison_konigsberg for illustrating Seven Bridges of Konigsberg
    • Removed ison_brandes2 and added potential modal type as extra variable to ison_brandes
    • Consolidated ison_bb, ison_bm, ison_mb, and ison_mm into a list of networks called ison_laterals

Make

Manip

  • Added delete_nodes() for deleting specific nodes
  • Added to_eulerian() function that returns a Eulerian path network, if available, from a given network

Map

  • Moved additional is_ functions from migraph
    • Added is_connected() to test if network is strongly connected
    • Added is_perfect_matching() to test if there is a matching for every node in the network
    • Added is_eulerian() to test whether there is a Eulerian path for a network
    • Added is_acyclic to test whether network is a directed acyclic graph
    • Added is_aperiodic to test whether network is aperiodic
  • Added partition layouts
  • Added theme_iheid() function that themes graphs with colors based on the Geneva Graduate Institute

2023-06-20

Package

  • Added tutorials for package
    • Moved and updated “data” tutorial from migraph
    • Moved and updated “visualisations” tutorial from migraph

2023-06-09

Package

  • Removed commented out examples
  • Added more detail on what various functions return

Manipulates

  • Added na_to_mean.data.frame()

2023-06-07

Package

  • Split up the migraph package, adding the Make, Manipulate, and Map functions to this package
  • Added package documentation
    • Added .github files
    • Added README structured around the problems the package solves
  • Improved consistency and readability
    • Functions that take data as their first argument has that first argument named .data
    • Added new print.tbl_graph method that offers easy to interpret information
    • Note that this method is exported but not currently documented
  • Reduced package dependencies considerably
    • Many are now weak dependencies; a dialog is invoked when the calling function is used for the first time and the user is prompted to install the missing package
  • Added extensive testing
  • Added new ‘manynet’ logo

Makes

Manipulates

  • Added as_*() functions, e.g. as_igraph()
    • Fixed as_edgelist.network()
    • Fixed as_network.data.frame()
    • Fixed as_network.tbl_graph()
  • Added join_*() functions, e.g. join_ties()
  • Added add_*() functions, e.g. add_node_attribute()
    • All create_*() functions return tbl_graph class objects
  • Added mutate_*() functions, e.g. mutate_ties()
    • With mutate_ties(), it is no longer necessary to activate(edges)
  • Added rename_*() functions, e.g. rename_ties()
  • Added is_*() functions, e.g. is_dynamic()
    • Fixed is_labelled() to work correctly with multiple network formats
  • Added to_*() functions, e.g. to_mode1()
    • This includes functions for reformatting, transforming, and splitting
    • This also includes functions for returning networks with missing data replaced by some imputed values
    • Fixed to_giant.network()
    • to_directed() now a method
    • to_subgraphs() now returns a list of tbl_graphs
    • to_reciprocated() now works on edgelists, matrices, tbl_graphs, and networks
    • to_acylic() now works on matrices, tbl_graphs, and networks
  • Added from_*() functions, e.g. from_egos()
  • Added “grab” functions, e.g. network_nodes()

Maps