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.