| conditionMatrix | R Documentation | 
Given a numeric array or matrix (of probabilities), calculates margins of some dimensions conditional on particular values of others.
conditionMatrix(
  x,
  variables,
  condition = NULL,
  condition.value = NULL,
  dim = NULL,
  incols = FALSE,
  undef = NaN
)
conditionTable(
  x,
  variables,
  condition = NULL,
  condition.value = NULL,
  undef = NaN,
  order = TRUE
)
conditionTable2(x, variables, condition, undef = NaN)
| x | A numeric array. | 
| variables | An integer vector containing the margins of interest from
 | 
| condition | An integer vector containing the dimensions of  | 
| condition.value | An integer vector or list of the same length as
 | 
| dim | Integer vector containing dimensions of variables. Assumed all binary if not specified. | 
| incols | Logical specifying whether not the distributions are stored as the columns in the matrix; assumed to be rows by default. | 
| undef | if conditional probability is undefined, what should the value be given as | 
| order | logical - if  | 
conditionTable calculates the marginal distribution over the
dimensions in variables for each specified value of the dimensions in
condition.  Single or multiple values of each dimension in
condition may be specified in condition.value; in the case of
multiple values, condition.value must be a list.
The sum over the dimensions in variables is normalized to 1 for each
value of condition.
conditionTable2 is just a wrapper which returns the conditional
distribution as an array of the same dimensions and ordering as the original
x.  Values are repeated as necessary.
conditionMatrix takes a matrix whose rows (or columns if incols
= TRUE) each represent a separate multivariate probability distribution and
finds the relevant conditional distribution in each case.  These are then
returned in the same format.  The order of the variables under
conditionMatrix is always as in the original distribution, unlike for
conditionTable above.
The probabilities are assumed in reverse lexicographic order, as in a flattened R array: i.e. the first value changes fastest: (1,1,1), (2,1,1), (1,2,1), ..., (2,2,2).
condition.table and condition.table2 are identical to
conditionTable and conditionTable2.
conditionTable returns an array whose first
length(variables) corresponds to the dimensions in variables,
and the remainder (if any) to dimensions in condition with a
corresponding entry in condition.value of length > 1.
conditionTable2 always returns an array of the same dimensions as
x, with the variables in the same order.
conditionMatrix(): Conditioning in matrix of distributions
conditionTable2(): Conditioning whilst preserving all dimensions
Mathias Drton, Robin Evans
marginTable, margin.table,
interventionTable
x = array(1:16, rep(2,4))
x = x/sum(x) # probability distribution on 4 binary variables x1, x2, x3, x4.
# distribution of x2, x3 given x1 = 1 and x4=2.
conditionTable(x, c(2,3), c(1,4), c(1,2))
# x2, x3 given x1 = 1,2 and x4 = 2.
conditionTable(x, c(2,3), c(1,4), list(1:2,2))
# complete conditional of x2, x3 given x1, x4
conditionTable(x, c(2,3), c(1,4))
# conditionTable2 leaves dimensions unchanged
tmp = conditionTable2(x, c(2,3), c(1,4))
aperm(tmp, c(2,3,1,4))
####
set.seed(2314)
# set of 10 2x2x2 probability distributions
x = rdirichlet(10, rep(1,8))
conditionMatrix(x, 3, 1)
conditionMatrix(x, 3, 1, 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.