View source: R/RCX-NodeEdgeNetworkAttributes.R
updateNetworkAttributes | R Documentation |
This functions add network attributes in the form of a NetworkAttributes
object to an RCX or an other
NetworkAttributes
object.
updateNetworkAttributes( x, networkAttributes, replace = TRUE, stopOnDuplicates = FALSE, ... ) ## S3 method for class 'NetworkAttributesAspect' updateNetworkAttributes( x, networkAttributes, replace = TRUE, stopOnDuplicates = FALSE, ... ) ## S3 method for class 'RCX' updateNetworkAttributes( x, networkAttributes, replace = TRUE, stopOnDuplicates = FALSE, checkReferences = TRUE, ... )
x |
RCX object; (to which the new network attributes will be added) |
networkAttributes |
|
replace |
logical; if existing values are updated (or ignored) |
stopOnDuplicates |
logical; whether to stop, if duplicates in name (and subnetworkId if present) column are found |
... |
additional parameters |
checkReferences |
logical; whether to check if references to other aspects are present in the RCX object |
Networks may have attributes, that are represented as NetworkAttributes
objects.
NetworkAttributes
objects can be added to an RCX or an other NetworkAttributes
object.
In the case, that a NetworkAttributes
object is added to an other, or the RCX object already contains a
NetworkAttributes
object, some attributes might be present in both. By default, the attributes are updated with the values
of the latest one. This can prevented by setting the replace parameter to FALSE
, in that case only new attributes are added and
the existing attributes remain untouched.
Furthermore, if duplicated attributes are considered as a preventable mistake, an error can be raised by setting stopOnDuplicates
to TRUE
. This forces the function to stop and raise an error, if duplicated attributes are present.
NetworkAttributes
or RCX object with added network attributes
NetworkAttributes
; NodeAttributes
, EdgeAttributes
## For NetworkAttributesAspects: ## prepare some aspects: networkAttributes1 = createNetworkAttributes( name=c("A","A","B","B"), value=list(c("a1","a2"), "a with subnetwork", "b", "b with subnetwork"), isList=c(TRUE,FALSE,TRUE,FALSE), subnetworkId=c(NA,1,NA,1) ) ## A is updated, C is new networkAttributes2 = createNetworkAttributes( name=c("A","A","C"), value=list("new a", "new a with subnetwork", c(1,2)), subnetworkId=c(NA,1,NA) ) ## Simply update with new values networkAttributes3 = updateNetworkAttributes(networkAttributes1, networkAttributes2) ## Ignore already present keys networkAttributes3 = updateNetworkAttributes(networkAttributes1, networkAttributes2, replace=FALSE) ## Raise an error if duplicate keys are present try(updateNetworkAttributes(networkAttributes1, networkAttributes2, stopOnDuplicates=TRUE)) ## =>ERROR: ## Provided IDs (name, subnetworkId) countain duplicates! ## For RCX ## prepare RCX object: nodes = createNodes(name = c("a","b","c","d","e","f")) edges = createEdges(source=c(1,2,0,0,0,2), target=c(2,3,1,2,5,4)) rcx = createRCX(nodes, edges) cySubNetworks = createCySubNetworks( id = c(1,2), nodes = list("all", c(1,2,3)), edges = list("all", c(0,2)) ) rcx = updateCySubNetworks(rcx, cySubNetworks) ## add the network attributes rcx = updateNetworkAttributes(rcx, networkAttributes1) ## add additional network attributes and update existing rcx = updateNetworkAttributes(rcx, networkAttributes2) ## create a relation with a not existing subnetwork... networkAttributes3 = createNetworkAttributes( name="X", value="new x", subnetworkId=9 ) ## ...and try to add them try(updateNetworkAttributes(rcx, networkAttributes3)) ## =>ERROR: ## NetworkAttributesAspect$subnetworkId IDs don't exist in CySubNetworksAspect
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.