Difference between revisions of "OpasnetUtils/CheckMarginals"

From Testiwiki
Jump to: navigation, search
(Code: new version)
m
 
Line 8: Line 8:
 
==Code==
 
==Code==
  
<rcode
+
https://www.opasnet.org/svn/opasnet_utils/trunk/R/CheckMarginals.r
    label="Initiate functions"
 
    showcode="1"
 
>
 
# CheckMarginals ############# Assumes that all depended upon variables are in memory, as should be the case.
 
##################
 
# Returns an ovariable with a marginal devised from the data and upstream variable marginals.
 
# Marginal values for data should be stored into the database somehow
 
 
 
CheckMarginals <- function(variable) {
 
varmar <- colnames(variable@data)[
 
!grepl(paste("^", variable@name, ":", sep=""), colnames(variable@data))&
 
!colnames(variable@data) %in% c("Result", "Unit")
 
]
 
# all locs under observation/parameter index should be excluded
 
varmar <- c(varmar, paste(variable@name, "Source", sep = "_")) # Source is usually added
 
# by EvalOutput so it should be in the initial list by default.  
 
novarmar <- colnames(variable@data)[!colnames(variable@data) %in% varmar]
 
for (i in as.character(variable@dependencies$Name)){
 
varmar <- unique(varmar, colnames(get(i)@output)[get(i)@marginal])
 
novarmar <- unique(novarmar, colnames(get(i)@output)[!get(i)@marginal])
 
}
 
varmar <- varmar[!varmar %in% novarmar]
 
variable@marginal <- colnames(variable@output) %in% varmar
 
return(variable)
 
}
 
</rcode>
 
  
 
==See also==
 
==See also==

Latest revision as of 13:28, 16 August 2012

Description

Checks ovariable marginals based on its data and dependencies. Takes all columns designated as marginal as a set and then excludes all columns designated as non-marginal from that set. Returns a corrected marginal as a logical vector.

Code

https://www.opasnet.org/svn/opasnet_utils/trunk/R/CheckMarginals.r

See also