Functions to coerce or test for non-random objects.

is.constant(x)

as.constant(x)

Arguments

x

an object, random variable (rv) or not

Value

a logical vector (not rv), TRUE if a component is constant w.p. 1

Details

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.

References

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").

Author

Jouni Kerman jouni@kerman.com

Examples


  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