CHANGELOG: v1.5 - New Functions, Changes, and Bug Fixes New Functions: component.largest - Extract the largest component from a graph kcycle.census - Compute cycle census information for a graph kpath.census - Compute path census information for a graph Changes: as.sociomatrix.sna now supports sparse matrices from the SparseM package (assuming that said package is installed); such objects should now be transparently supported by sna routines (albeit not efficiently) Bug Fixes: An error in the Holland and Leinhardt citation in the dyad.census documentation has been fixed [submitted by Ben Lind] Disabled lnam example which was apparently taking a long time to run on the CRAN test systems (but not on mine, for some reason) v1.4 - New Functions, Changes, and Bug Fixes New Functions: nacf - Network autocorrelation function neighborhood - Return the matrix of n-th order neighbors for an input graph Bug Fixes: Likelihood computation in lnam was innaccurate in some cases [submitted by Eric Neuman] Changes: A few remaining mva references were purged (see changes for v1.3) lnam has been rewritten using a different optimization scheme; this should prove more robust in some cases, but does change certain command-line arguments (see the man page for details) v1.3 - New Features, Changes, and Bug Fixes New Features: lnam now allows the user to specify multiple AR and/or MA effects simultaneously; network objects are also supported Changes: R version 2.0.0 is now required, due to the fact that mva has been phased out, mva was required for earlier R versions, and R CMD check now requires that any such package be mentioned on the "suggests" line of DESCRIPTION (thus generating an error, since mva is defunct). My apologies to anyone out there who is clinging to 1.x for some reason; I'd have left the support in, if that were feasible gplot and gplot3d now have displaylabels set to !missing(label) by default; this eliminates the need to manually set displaylabels when labels are explicitly specified [suggested by Gabor Grothendieck] Bug Fixes: ask=TRUE changed to ask=dev.interactive() where applicable, to ensure support for non-interactive devices [submitted by Kurt Hornik] network has been added to "suggests" line in DESCRIPTION, to calm down R check; it is helpful, but not essential v1.2 - New Functions, Changes, and Bug Fixes New Functions: ego.extract - Extract egocentric networks from complete network data Changes: Added a small tweak which improves performance of Romney-Batchelder model (consensus) where corner solutions are initially obtained for competency scores brokerage has now been backended, with substantial performance gains New backend functionality has been added for faster/more efficient graph storage; this is not user-visible, but will eventually result in better performance for many current routines (as it becomes integrated into the underlying code) Bug Fixes: Man page for components erroneously referred to the symmetrize function in place of component.dist Removed an errant two-parameter atan reference which was broken by changes in R >= 2.3 v1.1 - New Functions, New Features, and Bug Fixes New Functions: brokerage, summary.brokerage, print.summary.brokerage - Perform a Gould- Fernandez brokerage analysis read.dot - Read data in DOT format New Features: The variant of the Romney-Batchelder model implemented by consensus was not standard; consensus now also supports the canonical version. (Ironically, this variant seems slightly less effective, but is compatible with the multinomial processing tree interpretation.) Bug Fixes: equiv.clust and sedist would fail with multiple graphs if g argument was not explicitly set [submitted by Kieran Healy] triad.classify was not returning the right values in certain cases v1.0 - New Functions, New Features, Changes, and Bug Fixes New Functions: bn.* - Estimation for biased net models print.equiv.clust - Printing for equiv.clust objects rgbn - Draw from a biased net model structure.statistics - Return the structure statistics for one or more graphs write.dl - Write output in DL format write.nos - Write output in NOS format New Features: Most functions now support networks objects (a la the network package) and graph lists in a sensible way blockmodel now takes hclust objects or block membership vectors as input consensus now supports iterative reweighting (Romney-Batchelder model) equiv.clust now supports user-supplied distance matrices plot.sociomatrix can now suppress cell borders, and supports scaling of label text [latter suggested by Mark Handcock] triad.census and triad.classify now can now be set to obtain undirected triad classifications using mode="graph" Changes addisolates is now defunct (was deprecated - use add.isolates instead) grecip's output was confusing (edgewise measure was not what one might expect). grecip now gives a more conventional edgewise measure, with the old measure available as "dyadic.nonnull". [suggested by Simone Gabbriellini] netlm now uses more refined null hypotheses, and has been internally streamlined; output has been modified slightly. Modifications include the use of Dekker et al.'s semi-partialling procedure as the QAP default, and explicit compution of two-sided tests. netlogit has been changed in a manner analogous to netlm. Bug Fixes bbnam plot methods were creating ugly labels/titles equiv.clust and plot.equiv.clust were not fully compatible with recent changes in hclust gplot3d.arrow and gplot3d.loop (and hence gplot3d) were not drawing edge attributes properly print.blockmodel was failing under certain circumstances gtrans was producing inaccurate results on some graphs [submitted by Jessica Flack] plot.sociomatrix was generating annoying (albeit harmless) warning messages sedist was not considering all edges for mode=="graph" [submitted by Alex Montgomery] v0.51 - New Features and Bug Fixes New Features: gplot now supports vertex rotation, more refined label placement, and improved loop positioning [submitted by Alex Montgomery] gplot.layout.fruchtermanreingold, gplot.layout.kamadakawai, and their three-dimensional counterparts now accept "seed" coordinates through layout.par [suggested by Alex Montgomery] Bug Fixes: efficiency was producing incorrect values on some graphs options()$expression was limiting the number of vertex relocations in gplot's interactive mode gplot3d was not returning z coordinate [submitted by Alex Montgomery] v0.5 - New Functions, Changes, and Bug Fixes New Functions: gplot.arrow - Custom arrow-drawing for gplot gplot.layout.fruchtermanreingold - New layout method gplot.layout.hall - New layout method gplot.layout.kamadakawai - New layout method gplot.layout.target - New layout method gplot.loop - Custom loop-drawing for gplot gplot.target - Draw "target diagrams" using gplot gplot3d - Three-dimensional graph visualization gplot3d.arrow - Draw three-dimensional "arrows" gplot3d.layout.* - Layout functions for gplot3d gplot3d.loop - Draw three-dimensional "loops" is.connected - Determine whether or not one or more graphs is connected rgmn - Draw from the G(N,M) graph distribution rguman - Draw from the U|MAN graph distribution Changes: addisolates has been changed to add.isolates; addisolates is deprecated geodist now uses Inf as the default inf.replace value (was N); note that this may affect the default behavior of routines which use geodesic distance matrices on disconnected graphs gplot overhaul continues: gplot aspect ratio now fixed at 1:1 gplot now uses Fruchterman-Reingold as its default layout method gplot now supports manual setting of plot limits gplot now uses red as the default vertex color All plotting elements are now polygons; scaling is now performed relative to fractions of the plotting region, and all elements can be scaled. Labels are no longer plotted by default (and can be switched off with displaylabels) Various other minor changes have been made; see ?gplot Many routines (e.g., triad.classify, triad.census, geodist, etc.) now have C backends. This results in a tremendous performance boost (e.g., 1-2 orders of magnitude) on large graphs. Package code has been substantially reorganized A cumulative list of contributors has been added to the package -- see the CONTRIBUTORS file Bug Fixes betweenness no longer produces NaNs on disconnected vertex sets lubness was producing incorrect values for some graphs v0.44 - New Functions, New Features, Changes, and Bug Fixes New Functions: %c% - Composition of two adjacency matrices gapply - Apply functions over vertex neighborhoods. gplot.layout.* - Layout functions for gplot lnam - Fit a linear network autocorrelation model plot.lnam - Plotting for lnam objects print.lnam - Printing for lnam objects print.summary.lnam - Printing for lnam summary objects summary.lnam - Detailed printing for lnam objects New Features: consensus now supports union/intersection LAS and column/row raw report methods (useful for replicating "classic" CSS work) gplot sports a wide range of new features, including: An interactive mode, which allows for manual repositioning of vertices. (It's not pretty, but it works.) Silent return of the x,y coordinates for all vertices. This is useful for adding features to an existing plot, or for saving a given layout for later reuse. Adjacency matrices can now be used as parameters to set edge widths, line types, and colors [submitted by Alex Montgomery] Overplotting support [submitted by Alex Montgomery] Support for loops (i.e., self-ties) [submitted by Alex Montgomery] Curved edges, with adjustable curvature [submitted by Alex Montgomery] Support for user-supplied layout methods Expansion of existing layout methods, including new arguments Changes: triad.census now automatically removes the diagonal before calculating the triad census; a note on valued/unvalued data has also been added to the man page [suggested by Skye Bender-deMoll and Dan McFarland] Vertex layouts for gplot are now generated externally, via the gplot.layout.* functions. Arbitrary parameters may be passed to the layout functions via an argument list; further, since layout functions are identified with match.fun(), user-added functions can also be employed. The default layout method is now segeo (spring embedder results were sometimes very good, but too uneven). Bug Fixes: degree was reporting incorrect tmaxdev values in some cases triad.classify switched 111D and 111U [submitted by Dan McFarland and Skye Bender-deMoll] v0.43 - Minor Changes, Updates, and New Features Changes: Contact URL has been updated Updates: In keeping with the new rigorousness regarding data.frame structures in 1.8.0, many data.frames have been changed to lists. This should be transparent to the end user, but will avoid the generation of errors under the new system. Removed references to (deprecated) plot.hclust New Features: gplot now supports spring embedding. Providing unsupported layout modes now produces an error, rather than undefined behavior (as before). Options have also been added for suppressing the printing of axes, and for placing opaque boxes behind vertex labels. v0.42 - Minor Changes Changes: Author contact information has been updated plot.matrix is now plot.sociomatrix, in order to ensure compatibility with the new method standards; all code should be updated to reflect this fact v0.41 - Updates, New Features, and Bug Fixes Updates: Deprecated function .Alias removed (was used in netlm, netlogit) Changed keyword "network" to "math" in all help pages [as requested by the Keepers of R] Various internal changes to plot/print/summary methods, in order to maintain consistency with their generic equivalents; these will (hopefully) have no visible effect New Features: component.dist now supports weak, unilateral, strong, and recursive component definitions Bug Fixes: component.dist was calculating recursively connected components for connected="strong", instead of strongly connected components pstar was dumping (internal) edge perturbation data to the screen, which was harmless but very annoying; names for pstar coefficients were not being recognized by glm v0.4 - New Features, Changes, and Fixes New Functions: connectedness - Find the Krackhardt connectedness of a graph or graph stack dyad.census - Compute the Holland and Leinhardt MAN dyad census for a graph or graph stack efficiency - Find the Krackhardt efficiency of a graph or graph stack hierarchy - Find the hierarchy score of a graph or graph stack. infocent - Find the information centrality scores of network positions [submitted by David Barron] lubness - Find Krackhardt's Least Upper Boundedness of a graph or graph stack reachability - Find the reachability matrix of a graph. triad.census - Conduct a Davis and Leinhardt triad census for a graph or graph stack triad.classify - Return the Davis and Leinhardt classification of a given triad New Features: gplot now adjusts line width for valued graphs, via the edge.lwd parameter, and allows users to set the vertex point type (using vertex.pch. gmode=="graph" now sets usearrows<-FALSE, and new gmode "twomode" automagically plots two-mode data. New display modes have also been added: geodist (MDS of proximities); adj (MDS with adjacency as similarity); and seham (MDS of SE dist using Hamming method). grecip now supports a "measure" option, which allows the user to choose between "dyadic" reciprocity (aRb iff bRa) and "edgewise" reciprocity (aRb if bRa). The old version (and default) is the "dyadic" option, which (as the above implies) takes null dyads into account; the "edgewise" definition omits null dyads from the calculation. gtrans now supports a "measure" option, which allows the user to choose between "weak" transitivity (aRc if aRb & bRc) and "strong" transitivity (aRc iff aRb & bRc). The old version was strong-only, but much of the field prefers the weak version. Each of these options has a respective census variant ("weakcensus", "strongcensus") which returns a count of legal triads rather than a rate. pstar now supports separate options for strong/weak transitivity scores, and for strong/weak transitive triad counts. Bug Fixes: Labeling optimizers were not pre-sorting to guard against mixed-up exchange lists (these are now checked, too). Various centrality measures were not returning the correct absolute maximum deviation with tmaxdev==TRUE. gtrans was ignoring settings and counting diagonal entries [submitted by David Barron] pstar behaved badly when external predictors were unnamed [submitted by Gindo Tampubolon] Changes: Comparable labelings are now _enforced_ where applicable. lab.optimize.gumbel now just tries to scare you off, rather than refusing you altogether. Path-based indices (betweenness, closeness, stresscent, graphcent, etc.) now automatically assume cmode=="undirected" whenever gmode="graph". The default mode for gtrans is now "weak", to match the usage of W&F v0.3 - New Features, Changes, and Fixes General: All standard functions are now documented R package format is now supported New Functions: component.dist - Find the distribution of (maximal) component sizes within a graph components - Find the number of (maximal) components within a given graph eval.edgeperturbation - Evaluate a function on a given graph with and without a given edge, returning the difference between the results in each case. interval.graph - Construct one or more interval graphs (and exchangeability vectors) from a set of spells mutuality - Find the number of mutual (i.e., reciprocated) edges in a graph gscor - Computes the structural correlation between graphs gscov - Computes the structural covariance between graphs gtrans - Compute the transitivity of an input graph or graph stack. lab.optimize - Optimize a bivariate graph statistic over a set of labelings pstar - Fits a p* model using the logistic regression approximation read.nos - Reads input files in Neo-OrgStat format rperm - Draw a random permutation vector with exchangability constraints Features and Modifications: diag.remove, upper.tri.remove, and lower.tri.remove now allow replacement with any value gplot now provides a slew of new parameters to change color, size, etc. of vertices, edges, and labels gscor and gscov now delegate to lab.optimize gscor, gscov, structdist now support exchange lists (via lab.optimize) v0.2 - New Features and Some Bug Fixes New Functions: blockmodel - Generate blockmodels based on partitions of network positions blockmodel.expand - Generate a graph from a given blockmodel using particular expansion rules bonpow - Find the Bonacich power centrality scores of network positions equiv.clust - Find clusters of positions based on an equivalence relation evcent - Find the eigenvector centralities of network positions gdist.plotdiff - Plot differences in graph-level statistics against inter-graph distances gdist.plotstats - Plot statistics associated with graphs against (projected) inter-graph distances make.stochastic - Make a graph stack row, column, or row-column stochastic plot.blockmodel - Plotting for blockmodel objects plot.equiv.clust - Plotting for equivalence clustering objects prestige - Find actor prestige scores from one of several measures print.blockmodel - Printing for blockmodel objects print.summary.blockmodel - Printing for blockmodel summary objects sedist - Find distances between positions based on structural equivalence stackcount -Find the number of matrices in a graph stack (matrix or array data acceptable) summary.blockmodel - Detailed printing for blockmodel objects Features and Modifications: All centrality routines can now be rescaled (division by maximum realized value); default is always FALSE Bug Fixes: Various centrality routines once again return values for the selected graph and vertices