Functions to coerce or test for non-random objects.
is.constant(x)
as.constant(x)
an object, random variable (rv) or not
a logical vector (not rv), TRUE if a component is constant w.p. 1
is.constant
returns TRUE
for each component of the argument
object if there is only one simulation (that is, the variable is
"constant").
Note: rv objects that merely have variance zero are not therefore necessarily "true" constants.
as.constant
coerces rv
or rvsummary
objects into
constant strings; NA
is returned for component that is not random.
Kerman, J. and Gelman, A. (2007). Manipulating and Summarizing Posterior Simulations Using Random Variable Objects. Statistics and Computing 17:3, 235-244.
See also vignette("rv")
.
is.constant(1) # TRUE
#> [1] TRUE
is.constant(as.rv(1)) # TRUE
#> [1] TRUE
setnsims(200)
#> [1] 4000
x <- rvbern(prob=0.001)
all(sims(x)==0) # most probably true
#> [1] TRUE
is.constant(x) # always FALSE
#> [1] FALSE
x <- rvnorm(3)
x[1] <- 1
as.constant(x) # 1, NA, NA
#> [1] 1 NA NA
all(is.random(x) & is.na(as.constant(x))) # always TRUE
#> [1] FALSE