R/merging.R
Obtain a marginal distribution of a random variable in an rvtable.
marginalize(x, margin, density.args, sample.args)
x | an rvtable. |
---|---|
margin | variable(s) in rvtable to marginalize over. |
density.args | optional arguments passed to |
sample.args | optional arguments used when sampling. If supplied, overrides the |
an rvtable.
Grouping variables are ignored when marginalizing the distribution of a random variable over explicit categorical variables.
Unlike merge_rvtable
, marginalize
will not merge ungrouped ID variables.
It will only marginalize over the ID variables specified in margin
.
It will also account for unequal weighting of an ID variable's levels, taken from the weights
attribute of an rvtable,
whereas merge_rvtable
is a simpler function that ignores weights.
# NOT RUN { library(dplyr) x <- data.frame( id1=rep(LETTERS[1:5], each=4), id2=factor(c("low", "high")), id3=rep(1:2, each=2), Val=rep(1:10, each=20), Prob=rep(sqrt(1:10), each=20)) %>% rvtable marginalize(x, c("id1", "id2")) get_levels(x, "id1") get_weights(x, "id1") marginalize(x, "id1") wts <- data.frame(levels=LETTERS[1:5], weights=c(1, 1.5, 2, 4, 1)) x <- set_weights(x, "id1", wts) get_weights(x, "id1") marginalize(x, "id1") # }