varNames: Names of variables defining table; can be a right hand sided formula.
levels: Either 1) a vector with number of levels of the factors in varNames or 2) a list with specification of the levels of the factors in varNames. See 'examples' below.
values: Values to go into the array
normalize: Either "none", "first" or "all". Should result be normalized, see 'Details' below.
smooth: Should values be smoothed, see 'Details' below.
data: Data to be coerced to a parray; can be data.frame, table, xtabs, matrix.
sep: Desired separator in dim names; defaults to "".
Returns
A a named array.
Details
A named array object represents a table defined by a set of variables and their levels, together with the values of the table. E.g. f(a,b,c) can be a table with a,b,c representing levels of binary variable
If normalize="first" then for each configuration of all other variables than the first, the probabilities are normalized to sum to one. Thus f(a,b,c) becomes a conditional probability table of the form p(a|b,c).
If normalize="all" then the sum over all entries of f(a,b,c) is one.
If smooth is positive then smooth is added to values before normalization takes place.
Examples
t1 <- parray(c("gender","answer"), list(c('male','female'),c('yes','no')), values=1:4)t1 <- parray(~gender:answer, list(c('male','female'),c('yes','no')), values=1:4)t1 <- parray(~gender:answer, c(2,2), values=1:4)t2 <- parray(c("answer","category"), list(c('yes','no'),c(1,2)), values=1:4+10)t3 <- parray(c("category","foo"), c(2,2), values=1:4+100)varNames(t1)nLevels(t1)valueLabels(t1)## Create 1-dimensional vector with dim and dimnamesx1 <-1:5as.parray(x1)x2 <- parray("x", levels=length(x1), values=x1)dim(x2)dimnames(x2)## Matrixx1 <- matrix(1:6, nrow=2)as.parray(x1)parray(~a:b, levels=dim(x1), values=x1)## Extract parrays from data## 1) a dataframedata(cad1)data2parray(cad1,~Sex:AngPec:AMI)data2parray(cad1, c("Sex","AngPec","AMI"))data2parray(cad1, c(1,2,3))## 2) a tabledata2parray(UCBAdmissions,c(1,2), normalize="first")