1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575
|
CHANGELOG:
v1.20.0
- Changed an internal test to make it comply with an upcoming R change.
- Updated various URLs in the vignette to comply with ever-evolving CRAN
rules.
- Converted various network related functions to generics, making it easier
to support e.g. networkLite objects.
v1.19.0
- Non-visible and documentation changes for CRAN compliance.
- Internal argument handling changes; should generally be invisible, but
may in some complex cases avoid problems when calling network().
- Added more internal checks to edge allocation and handling. These should
not be visible for normal use, but should catch/avoid errors due to
improper use (e.g., trying to make/use network objects with malformed
edges). This is not expected to break any working code, but if you
have been doing things you shouldn't have been doing (e.g., edges
without both inl and outl elements), then you might find that you need
to fix things. (This usually takes effort, so you are not likely to
have done it by accident.)
- Bolstered add.edge and add.edges against improper edge.check arguments.
- Made get.inducedSubgraph() and permute.vertexIDs() generic.
- Replaced now non-functional Pajek URLs with Internet Archive versions.
v1.18.2
- Non-visible changes for CRAN compliance.
v1.18.1
- Non-visible changes for CRAN compliance.
- as.network.data.frame() now handles deleted edges correctly.
- as.data.frame.network() can now mimic as_tibble_network() behavior.
v1.18.0
- Many network methods are now S3 generics (to facilitate objects like networkLite).
- get.dyads.eids now has an na.omit argument.
- Minor bug fixes.
v1.17.2
- Deactivated tests to appease CRAN.
- Modified various protection calls in a hopefully more conservative manner. This should not produce user-visible changes, but will be cleaner on rchk.
v1.17.1
- Coercion from an edgelist could fail with a single edge when redundant edges were being removed.
- Zero-row matrices are now assumed to be empty edgelists when not explicitly specified. (Before, they just failed.)
v1.17
- Michal Bojanowski, Pavel N. Krivitsky, Chad Klumb, and Brendan Knapp have been added as contributors.
- summary.character() and print.summary.character() are no longer exported as it interfered with base::summary.data.frame().
- Added functions as.network.data.frame and as.data.frame.network for converting between data.frames and networks.
- as.tibble.network and as_tibble.network now optionally return edge IDs, controlled with the store.eid argument
- Fixes to read.paj().
- Various testthat improvements.
- Bugs fixed in mixingmatrix.network().
- Updated tests for compatibility with R 4.0
- Converted is.bipartite, is.directed, get.edge.attribute, get.edge.value, get.network.attribute, list.edge.attributes, list.network.attributes, set.vertex.attribute, set.edge.attribute, set.edge.value, set.network.attribute, delete.vertex.attribute, delete.edge.attribute, delete.network.attribute, has.vertex.attribute, has.edge.attribute, and has.network.attribute to generics for greater extensibility.
- Using an out-of-bounds index in nw[i,j] and nw[i,j]<- now produces a sensible error message (i.e., same one as for a matrix).
- mixingmatrix() now produces output inheriting from "table" rather than a list; its printing, handling of missing attributes, bipartite networks, and other scenarios has been improved.
- as.mixingmatrix() has been added.
- network now uses statnet::statnetStartupMessage().
- Updated constructor code per Kurt Hornik's suggestion to future proof versus upcoming sapply() changes.
- network.edgelist() now automagically prunes loops and redundant edges for networks that should not have them; previously, the function trusted the user not to supply such things (and would go ahead and make edges if asked to do so).
v1.16
- Converted get.vertex.attribute and list.vertex.attributes to generics for greater extensibility.
- Updated tests to fix a color-related issue.
- Switched explicit class matching checks to inherits(). This avoids a compatibility problem with future R releases (and facilitates further class extensions).
v1.15
- made na.omit a non-required arguments S3 method generics for network.edgecount and network.dyadcount for exensibility by downstream packages
v1.14 Fixes & Features
- revamped the network C API, which had been broken by earlier regrestration changes. Users making use of the C API will need to update their networkapi.c and networkapi.h files, but no other changes need to be made to existing code.
- Fixed an un-handled case for plot edge.lwd expansion when called from other contexts. It can now replicate a single numeric value even if scaling is not otherwise included.
- network now has an as_tibble() method to convert it to a tibble edgelist with specified edge attributes as columns or to a tibble vertex list with vertex attributes as columns.
- as.edgelist() can return a tibble as well.
- network print() methods now handle formula network attributes intelligently.
- mixingmatrix() is now a generic, with a mixingmatrix.network() method.
- Improved handling for NAs in network subsetting assignment operation.
- A number of functions (network.edge.count(), network.dyadcount(), network.naedgecount(), and network.size()) are now generics.
- Assigning a vector (as opposed to a matrix) to %e% (edge attribute) now sets the edge attribute of corresponding edges (in the same order as the internal representation).
- Various changes made to satisfy CRAN's ever-shifting code requirements.
v1.13 Fixes & Features
- added some CRAN requested imports to NAMESPACE
- added get.dyads.eids function to return sets of edge ids for vectors of tails and heads vertex ids for non-multiplex networks
- copied as.edgelist functions from ergm, they serve as wrapper for as.matrix.edgelist.network that enforces sorting and adds an 'edgelist' class.
- added a has.edges() function to determine if a vertex has any edges (is not an isolate)
- updated network.dyadcount to account for loops and directed bipartite networks
- added optional opacity paramter to as.color, and new docs for as.color.
- rewrote read.paj() parser for Pajek formatted files, now supports timing and edge attributes, fixes error for empty network
- added Suggests dependency for testthat for testing
v1.12 Fixes & Features
- fix error with as.matrix.network.edgelist when as.sna.edgelist=TRUE and network has 0 edges
- updated citation generation code
- NAMESPACE file updated to explicitly register S3 methods (and some pseduo S3 methods as requested by CRAN check)
- changing the vertex.sides argument to plot.network now produces polygons of equal area instead of equal radius.
- plot.network can now plot labels on curved edges
- refactored plot.network so that much of the argument expansion is handled by a public method plotArgs.network so that it can be accessed by depending packages
v1.11 Fixes & Features
- minor change to layout.c to fix UBSAN warning flagged by CRAN
- minor changes to print.network to give more informative info about some network attributes
- get.edge.attribute now has C-level backend
- get.edge.attribute and get.edge.value now have arguments to avoid returning attribute values from 'missing' edges (na.omit) and unset/deleted edges (deleted.edges.omit) and edges with no value assigned for the attribute (null.na).
- network now includes an explicit list of exported functions in NAMESPACE
- the following 'internal' functions have been removed from NAMESPACE: networkOperatorSetup, switchArcDirection, readAndVectorizeLine, read.paj.simplify
- network now follows R conventions for exporting some of its C-level API functions for use by other packages
- get.inducedSubgraph() now has an optional 'eid' argument for inducing a network including specified edges and their incident vertices
- fixed bug in as.network.matrix that caused it to ignore the na.rm argument.
- added patch to which.matrix. type to handle NAs submitted by Philip Leifeld
- fixed na.rm argument to as.network.matrix
- changed plot function to force lazy evaluation of displaylabels=!missing(label) argument before value of label is changed
v1.10 Fixes
- fixed vertex label plotting bug when vertices have the same positions
- added dimension checks and more informative error for as.network.matrix for case when it assumes a square edgelist is an adjacency matrix
- added dependency on statnet.common library to facilitate some development testing
- The 'modify in place' syntax for network functions that modify their arguments now works correctly when the network to be modified is an element of a list
- Modified plot.network.default so that if a single value is passed in that matches with a vertex attribute name, the value of the attribute will be used (to make it consistent with the rest of the plot arguments)
- Fix to C-level stack protection bug in delete.vertices that could cause crashes under some conditions
- removed $<-.network assignment operator so that dispatch will occur via R internals.
- Fix stack protection overflow in set.edge.value. Also check for correct dimension on value argument for set.edge.value.
- Minor documentation fixes
v1.9 Features & Fixes
New Features
- minor tweak to print.network to not show summary information for net.obs.period and .active attributes when called from network dynamic
- add.vertices, add.edge, and add.edges have been converted to S3 methods
- set.vertex.attributes and set.edge.attributes can now modify a list of on a network attributes with a single call
- modified all of the set and add methods to remove the x$RisTooLazy?<-NULL copy-inducing kludge in favor of x<-duplicate(x) in the C version of the function. Seems to give moderate speed improvement for large networks
Fixes
- fixed a c-level bug in get.edge.ids that was giving bad values on undirected networks with loops.
- fixed a bug where [<-.network assignment operator fails to add edge in non-directed loops case
v1.8 Fixes & Features
New Features
- now supports bipartite networks with zero-sized first mode. (bipartite=0 no longer means the same thing as bipartite=FALSE, and is.bipartite() reflects this)
- added vertex.lwd attribute to plot.network for controlling line widths around vertices
- added basic plotting for edge labels (new plot.network arguments: edge.label, edge.label.cex, edge.label.col)
- added valid.eids function to return the ids of non-NULL edges in a network
- added a loading.attributes man page with more examples of attaching vertex and edge attributes
- print.network now lists edge attributes if there are less than 1k edges, otherwise a notice that attribute names are not shown (listing edge attributes is expensive)
Bug Fixes
- permute.vertexIDs was triggering a protection stack overflow on large graphs.
- fixes for the undirected network subtraction operator and ! operator bug. resolution involved forcing a i<j ordering for comparisons of undirected networks.
- fixed network.edgelist and as.network.matrix so that it is possible to construct networks using a matrix or dataframe in which the first 2 cols give tail and head ids, and remaining cols define attributes as docs state.
- fixed network.bipartite constructor so that it can correctly handle edge weights when building network from bipartite matrix. Also added automatic cast to matrix so it will work with data.frame argument.
- fixed bug in how is.color() processed NA values that mangled colors in plots in some situations.
v1.7.2 New Features/Changes/Bug Fixes
New Features:
- networks with zero vertices (zero-order networks) are now supported. Some functions now give explicit errors for networks with size zero because behavior is not well defined.
Changes
- package is now hosted as part of the statnet project
- get.edge.attribute will now silently call get.edge.value if accidentally called with a network instead of net$mel.
- some minor additions to documentation
- original JStatSoftware article included as package vignette
- package now requires the sna package, to provide some functions needed for network layouts
Bug Fixes
- fixed bug in add vertices when adding to second mode of bipartite network
- fixed deprecation warning for R v2.15.3
- Fixed bug where replacement operator can add multiple edges to pair of vertices
v1.7-1 Bug Fixes
Bug Fixes:
- .onLoad's startup message code caused excitingly bad behavior with recent
versions of R. [CTB]
- network.adjacency, network.edgelist, etc. were no longer modifying their
arguments in place, and have had their correct behavior restored. [CTB]
- delete.vertices was building up too many protection stack calls, which
could cause issues in some cases. [CTB, submitted by Adrian Albert]
v1.7 New Features/Changes/Bug Fixes
New Features:
- as.matrix.network.edgelist now supports an argument, as.sna.edgelist,
that will return a fully compliant sna edgelist representation of the
network. For sna versions 2.3 and later, this will among other things
allow missing data information to be automagically retained when passing
network objects to sna functions. (Previous to this, missing edges were
stripped on conversion.) [CTB]
Changes:
- print.summary.network no longer dumps excessive information when printing
edge lists. [CTB]
- Built-in data objects are now compressed (not that it made much
difference, but CRAN was complaining). This also requires R version
2.10 or later (previously required R>=2.0). [CTB]
Bug Fixes:
- The network summary and print methods could in some cases fail if called
on a network with non-trivial graph-level attributes. [CTB, submitted by
Zack Almquist; closely related bug fixed by MSH]
- If called with ignore.eval=T but no specified names.eval, as.network
and friends generated an object with mislabeled edge attributes; note
that a warning is still given with such a call, since it is unwise not
to specify attribute names. [CTB, submitted by DH]
v1.6 Changes/Bug Fixes
Changes:
- In-place modification methods now use draconian measures to force
evaluation of their arguments prior to modification, and overwrite
non-anonymous arguments in their original frame on exit. This is a kludge
to cope with R's lazy evaluation strategy, which does not play well
with in-place modification of arguments.
Bug Fixes:
- Per the above, semantics for in-place modification of objects should now
operate correctly (was conflicting with R's lazy evaluation scheme,
sometimes resulting in bizarre behavior). [CTB, submitted by Ronggui
Huang]
- plot.network was failing when edge.col was called with single color terms.
[CTB, submitted by Philip Leifeld]
- network.layout.fruchtermanreingold failed when called with a network
having exactly one edge. [DRH]
v1.5-1 Minor Changes/Bug Fixes
Changes:
- The mixingmatrix function has been moved from ergm to network (currently
as an undocumented internal function). [CTB, but original function is
due to MSH]
Bug fixes:
- plot.network generated an error in some cases when edge.curv was set.
[CTB, submitted by Brian Ripley]
- summary.network generated an error if mixingmatrices=TRUE was set and
ergm was not loaded. (The mixingmatrix function has now been moved into
the network package.) [CTB, submitted by Ronggui Huang]
v1.5 New Functions, New Features, Changes, and Bug Fixes
New Functions:
- get.inducedSubgraph: return induced subgraphs and edge cuts from a
network object. A new operator, %s%, has been introduced to simplify
this process. [CTB]
New Features:
- add.vertices now supports adding vertices to the first mode of a
bipartite network (default behavior is unchanged). [CTB]
- as.matrix.network.adjacency and as.sociomatrix now support an optional
argument to force bipartite graphs to be returned in full one-mode
adjacency form (rather than the current, two-mode default). [CTB]
- print.network and print.summary.network now support an argument to allow
suppression of matrix output (helpful for very large graphs). [CTB]
- network.layout.fruchtermanreingold now uses a cell-based acceleration
scheme for large graphs, which can be adjusted using layout.par; it also
operates entirely on edgelists, and is no longer O(N^2) in typical
applications.
- Network coercion methods now recognize/use sna edgelist attributes
(even if the matrix is not actually an sna edgelist!) automagically.
Coercion to edgelist form also sets the sna edgelist attributes. In
addition to being useful for interoperability, this now makes it easier
to import network data in edgelist form (previously, one had to be
careful about setting vertex sizes, which could only be crudely inferred
from the edgelist matrix itself). [CTB]
Changes:
- By very popular demand, network now uses R name spaces. [Credit to
Michal Bojanowski for convincing us to make the leap]
- Also by popular demand, print.network no longer displays the network
itself by default. [CTB]
- Elementwise network operators now support multigraphs, and use
basic network attributes in a sane way. Operator semantics have been
substantially expanded for the muligraph case; hypergraphs are not
yet supported, but missingness is. [CTB, submitted by MSH]
- Support for bipartite graphs in read.paj has been improved. [MSH]
- In addition to changes noted above, network.layout.fruchtermanreingold
uses a lightly different repulse radius by default; this seems to
work better on large graphs. [CTB]
- plot.network has some overdue performance enhancements, including
a more scalable Fruchterman-Reingold implementation. Note that
plot.network no longer coerces anything to adjacency form, although
particular layout methods might. [CTB]
Bug Fixes:
- add.edge and add.edges would crash when called with NA vertex IDs in the
head or tail lists. [CTB, submitted by Skye Bender-deMoll]
- is.na.network failed when called on networks with deleted edges.
[CTB, submitted by MSH]
- network.dyadcount handled NAs improperly in some cases. [MSH]
- network.initialize now stops with an error when called with <=0
vertices, rather than producing undefined behavior. [CTB, submitted
by Skye Bender-deMoll]
- Various minor issues in plot.network have bee fixed. [CTB, mostly
based on imports from gplot in sna; some gplot fixes contributed by Alex
Montgomery]
- print.network and print.summary.network could fail when called on
multiplex or hypergraphic networks with the wrong matrix.type settings.
[CTB]
v1.4-1 Minor Changes/Bug Fixes
Changes:
- print.summary.character now behaves in a more intuitive way (and always
generates at least marginally useful output). [CTB]
- print.summary.network has been rewritten -- too much confusion about what
it was supposed to do. [CTB]
- The na.omit option to print.summary.network and print.network should now
be considered deprecated (it does essentially nothing at this point. [CTB]
Bug Fixes:
- print.summary.network was giving the same information twice (and other
information badly. [CTB]
v1.4 New Functions, New Features, Changes, and Bug Fixes
New Functions:
- is.na.network: returns a network whose edges correspond to missing edges
in the original network. (Also supported by new backend function
isNANetwork_R.) [CTB]
- network.naedgecount: returns the number of missing edges in a network
object. [CTB]
- Internal functions summary.character and print.summary.character have
been added for use with network print/summary methods. [MSH]
- Internal function is.color has been added to allow heuristic
identification of color names (for use with attribute plotting).
as.color similarly attempts to coerce its input into some reasonable
color value for display purposes. [CTB]
New Features:
- The network edge assignment operator ([<-.network) now allows NAs to be
given as assignment values (resulting in missing edges if no attribute
specified, or missing attribute values otherwise). [CTB]
- The C-level network API headers are now contained in the "inst" directory;
from now on, they will be maintained there. [CTB]
- read.paj now imports vertex attributes. [Patch submitted by Alexander
Montgomery]
Changes:
- Many minor documentation updates (including adding references to the
recent JSS article). [CTB]
- CITATION file has been updated to reflect current R standards. [CTB]
- Color support in plot.network.default has been greatly expanded and
rationalized. [CTB]
- is.adjacent now sets na.omit=FALSE by default; there seems to be a general
consensus that this results in the more obvious pattern of behavior
(i.e., missing edges from i to j result in a value of NA, unless there
are also non-missing (i,j) edges present). The man page has also been
updated to describe this behavior in greater detail. [CTB]
- Per the above, as.sociomatrix and related coercion methods also now
display missing data information by default. [CTB]
- summary.network now returns a summary.network object, and printing takes
place within print.summary.network (which is standard R behavior).
Something approximately like this was being done before, but behavior
should now be more conventional; summary.network objects can also carry
optional information as network attributes with names of the form
"summary.*". [CTB; Submitted by DRH]
- plot.network.default now automagically displays labels if manually
supplied (following the behavior of sna's gplot). [CTB]
- print.network now shows missing edge information. [CTB]
- The man page for network.dyadcount now emphasizes the fact that
directed dyads are returned when is.directed(x)==TRUE. (This was noted
in the example, but was explicitly discussed in the main page.) [CTB;
Submitted by DRH]
- as.matrix.network.edgelist and as.matrix.network.incidence now return
degenerate matrices instead of NULL when called with an empty graph.
[Pavel Krivitsky]
- Undocumented support for the design matrix and special "respondent"
attributes should be considered deprecated, and will be removed in the
next version. [CTB]
Bug Fixes:
- as.matrix.network.edgelist dropped the dimensions of its output when
called on a graph with one edge. [CTB]
- as.matrix.network.incidence produced an error when called with an
empty graph, and generated incorrect matrices when called with graphs
containing missing or previously deleted edges. [CTB]
- get.neighborhood was incorrectly including ego for loopless undirected
graphs. [CTB]
- list.vertex.attributes produced an error when called on networks with
different attributes on each vertex. [CTB]
- plot.network.default was not displaying colors as advertised in some
cases [CTB; Submitted by Cori Mar]
- print.network and summary.network were giving ugly output. [MSH]
- read.paj was reversing arc directions. [CTB; Submitted by Kevin Lewis]
- The initial startup message was giving the wrong help command. [CTB;
Submitted by Kevin Zembower]
- read.paj was failing in some cases. [Pavel Krivitsky]
- summary.network didn't call the mixing matrix summary properly. [MSH]
v1.3 New Functions, New Features, Changes, and Bug Fixes
New Functions:
- network.vertex.names<-: simplified assignment for vertex names. [CTB]
New Features:
- A CITATION file has now been added to the package, to encourage good
behavior. The initial on-load announcements have been tweaked
accordingly. [CTB]
Changes:
- add.edges (via the backend routine add_edges_R) now adds edges in a
more efficient way; substantial performance gains should be observed
when adding multiple edges at one time, versus previous package
versions. [CTB]
- network print and summary methods now consistently refer to "vertex
attributes" instead of "nodal attributes." [CTB]
- network constructors now set vertex names by default; this brings the
actual behavior of the package in line with its apparent behavior (since
network.vertex names and similar routines will "fake" vertex names if
none are present, thus producing results which are inconsistent with
get.vertex.attribute in the latter case). [CTB]
- The DESCRIPTION file has been tweaked to be a bit more professional, and
to add the statnet web site. [CTB]
Bug Fixes:
- Fixed "virtual subsetting" for network objects when a single vector of
virtual cell numbers is provided, or when a one-row, two-column matrix is
given. In both cases, network was treating the numbers as if they were
first-column selectors. [CTB]
- Direct assignment to internal components of network objects was failing
in certain cases. This has been fixed, although users should note that
this behavior is both unsupported and generally a Bad Idea (TM). Please
use interface methods instead! [CTB; Submitted by Skye Bender-deMoll]
- Fixed bug in read.paj. [MSH]
- Fixed display of attribute information in summary.network. [MSH]
- plot.network is now compatible with the updated ergm package. [CTB]
- Previously implemented functionality in plot.network allowing one-word
specification of vertex or edge attributes for display parameters was
not working uniformly. [CTB]
v1.2 New Functions, Changes, Bug Fixes
New Functions:
- $<-.network: replacement method for network objects. [CTB]
- sum.network, prod.network: sums and products of multiple network
objects. [CTB]
Changes:
- Direct assignments with network objects on the right-hand side now copy
their right-hand argument (per standard R semantics). Originally, a
pointer to the right-hand argument was copied (and network.copy was
required for direct assignment). The direct use of network.copy is now
unnecessary for most purposes, and should be avoided. [CTB]
- network.density now allows explicit control of missing data behavior,
support for ignoring "structural zeros" (per bipartite), and supports
a wider range of hypergraphic cases. [CTB]
- Some adjustments have been made to the overloading of network arithmetic
operators, to ensure compatibility with future versions of R. Most
importantly, the passing of an attrname argument to arithmetic operators
is now defunct (since it violates the S3 generics). The addition of
more general sum and prod methods hopefully make up for this
regression. [CTB]
- The network extraction and assignment operators now behave more like
conventional matrices. In particular, single vectors are assumed to
contain lists of cell indices (when given in isolation), and one-row,
two-column matrices are treated as other two-column matrices. [CTB]
- Various minor documentation and test file updates. [CTB]
Bug Fixes:
- as.matrix arguments have been modified to harmonize with the new R (2.5)
generics definitions. [CTB]
- Annoying but harmless tracer messages have been removed. [CTB]
- Protection stack could overflow when large numbers of edges were deleted
in a single call. [CTB; Submitted by Pavel Krivitsky]
v1.1-2 Changes, Bug Fixes
Changes:
- getNeighborhood, getEdges, and getEdgeIDs (internal) now force
type="combined" behavior on undirected networks; this was done at the R
level before, but is now enforced in C as well. This is not generally
user-level transparent, but affects the experimental network API [CTB]
Bug Fixes:
- as.network.matrix was not setting the bipartite attribute of the returned
network properly, when called with a non-FALSE bipartite argument [MSH]
- An error was present in some error return functions, causing errors on
errors (which, happily, were only relevant when an error occurred)
[CTB; Submitted by Skye Bender-deMoll]
v1.1-1 New Functions, Changes
New Functions:
- The internal function setVertexAttribute has been added. This has
no immediate user-level effect, but the new function is supported
in the C API [CTB]
Changes:
- Use of the protection stack has been changed, so as to avoid racking up
huge stacks when creating very large networks. This is expected to have
a minimal impact on performance, but will avoid protection stack overflow
issues in some cases [CTB]
- A change in R 2.4.0 has apparently made it impossible for generic
two-argument Ops (e.g., +,-,*) to dispatch to functions with more than
two arguments. A side effect of this is that "+.network" and friends
must be called with the full function name (as opposed to simply "+")
when the optional attrname argument is being used. Note that this is
not a change in the network package (although the test code has been
updated to reflect it), but a regression due to R. Go complain to the
R team [CTB]
v1.1 New Features, Bug Fixes, Changes
New Features:
- [.network and [<-.network now allow the use of vertex names (where
present) for selection of vertices [CTB]
Bug Fixes:
- add.vertices did not verify the integrity of vattr, and could generate
a segfault if incorrectly called with a non-null, non-list value [CTB;
reported by Skye Bender-deMoll]
- as.network (and friends) could segfault if matrix.type was forced
to adjacency while bipartite>0; new behavior essentially forces the
use of the bipartite matrix method in this case [CTB]
- delete.edges and set.edge.attribute returned an annoying (but harmless)
warning when called with zero-length eid [CTB; reported by David Hunter]
- delete.vertices did not adjust bipartite attribute (where present) to
account for loss of mode 1 vertices [CTB]
- get.vertex.attribute generated an error when called with na.omit=TRUE
in some cases [CTB]
- network.incidence could not be used to construct undirected dyadic
networks [CTB]
- set.vertex.attribute generated an error if called with attribute lists
of length != network.size [CTB; reported by Skye Bender-deMoll]
Changes:
- Added a new overview man page (network-package) with information on how
to get started with network [CTB]
- [<-.network will now remove edges with zero values if both names.eval and
add.edges are set, and will not add edges for those cells. Previously,
the standard behavior was to add edges for all cells [CTB]
- Added delete.edges to the "see also" for add.edges [CTB; suggested by
Skye Bender-deMoll]
- permute.vertexIDs now throws a warning when called with a cross-mode
vertex exchange on a bipartite graph [CTB]
- Default matrix type for as.matrix.network is now "adjacency," rather than
the output of which.matrix.type(). Coercion methods should not have
variable behavior depending on features such as network size, even if
it is convenient for some purposes! The old behavior can be easily
obtained via setting matrix.type=which.matrix.type(x), for those who
want it [CTB]
v1.0-1 Minor Bug Fixes, Changes
Bug Fixes:
- Various warnings were removed (apparently, these only appeared in
R<2.1) [CTB]
- plot.network was failing on networks where is.bipartite==TRUE [CTB]
Changes:
- The generic form of %c% was temporarily removed, to avoid namespace
issues with sna. (This will be rectified in future releases.) [CTB]
v1.0 New Functions, New Features, Changes, and Bug Fixes
New Functions:
- Operator overloading for +, -, *, |, &, and ! have been added, as has the
composition operator, %c% [CTB]
- Operator overloading is now supported for "[" and "[<-"; this allows
network objects to be treated transparently as if they were adjacency
matrices (in some cases, at least). New extraction/replacement operators
%n%, %n%<-, %v%, %v%<- have been added for extracting/assigning values to
network and vertex attributes (respectively) [CTB]
- network.copy: returns a copy of the input network [CTB]
- network.dyadcount: return the number of dyads in a network (optionally
adjusting for the missing dyads) [MSH]
New Features:
- add.edges now checks for illegal loop-like edges when edge.check==TRUE
[CTB]
- get.neighborhood now allows users to specify whether missing edges should
be ignored [CTB]
- set.edge.value now accepts edge values in vector format [CTB]
Changes:
- All access access functions now modify their arguments in place; this
greatly improves performance, but may produce unexpected behavior.
If users wish to generate a modified copy of a network, they must
first generate the copy and then modify it. Otherwise, the old
object will be modified as well. In accordance with this, modification
methods now return their (modified) arguments invisibly. [CTB]
- Most access functions have now been backended; this has improved the
performance of many operations by as much as two orders of magnitude [CTB]
- get.edges and get.edgeIDs now treat all undirected networks as if
called with neighborhood=="combined" [CTB]
- as.matrix.network.incidence now handles undirected edges in a more
conventional way [CTB]
- network.adjacency will now ignore diagonal entries if has.loops=FALSE
[CTB]
Bug Fixes:
- as.network.edgelist and as.network.incidence were producing spurious edge
attributes [CTB]
- list.edge.attributes generated failed under certain conditions (submitted
by Matthew Wiener) [CTB]
- set.edge.attribute was able to write attributes into non-existent (NULL)
edges [CTB]
- set.edge.value could exhibit strange behavior when carelessly chosen
edge subsets were selected [CTB]
v0.5-4 New Facilities for Bipartite, New Features, Changes, and Bug Fixes
New Functions:
- network.bipartite to store an explicit bipartite network.
Modified network.initialize, etc, to accept "bipartite" argument. [MSH]
- is.bipartite: logical test for a bipartite network [MSH]
- read.paj: read one or more network objects from a Pajek file [MSH, DS]
New Features:
- summary.network now reports on edge attributes [MSH]
Changes:
- The composition operator (%c%) has been removed due to a name conflict
with the sna package; since sna now supports network objects, its
version can be used instead. [CTB]
- as.sociomatrix is now properly configured to work in tandem with
as.sociomatrix.sna (in the sna package). The functionality of the
routine has also been extended slightly. [CTB]
Bug Fixes:
- .First.lib: Print out correct welcome banner for package [MSH]
- Fix displayisolates determination in plot.network.default [MSH]
v0.5-3 New Functions, New Data Set, and Changes
New Functions:
- permute.vertexIDs: Permute vertices in their internal representation [CTB]
New Data:
- emon: Drabek et al.'s Emergent Multi-organizational Networks [CTB]
Changes:
- The obsolete examples directory has been removed. [CTB]
v0.5-2 New Features, New Functions and Bug Fixes
New Functions:
- delete.vertices: Remove one or more vertices (and associated edges)
from a network object.
- delete.edge.attribute, delete.network.attribute, delete.vertex attribute:
Remove an edge/network/vertex attribute.
- list.edge.attributes, list.network.attributes, list.vertex attributes:
List all edge/network/vertex attribute names.
New Features:
- plot.graph.default now accepts vertex/edge attribute names for most
vertex/edge display properties.
Bug Fixes:
- Edge deletion produced exciting and unexpected behavior in some cases.
- network.initialize set vertex na attributes to TRUE by default.
|