Nothing
library(cpr)
################################################################################
## Updating a cpr_bs object ##
e <- new.env()
with(e, {
x <- runif(n = 150, min = 1, max = 10)
bmat0 <- bsplines(x, bknots = c(1, 10), df = 5, order = 3)
bmat1 <- bsplines(x, bknots = c(1, 10), df = 5, order = 4)
bmat2 <- bsplines(x, bknots = c(1, 10), df = 12, order = 5)
stopifnot(isTRUE(all.equal(update_bsplines(bmat0, order = 4), bmat1)))
stopifnot(isTRUE(all.equal(update_bsplines(bmat0, df = 12, order = 5), bmat2)))
})
################################################################################
## Updating a cpr_bt object ##
e <- new.env()
with(e, {
tpmat0 <- btensor(list(seq(0, 1, length = 10), seq(0, 1, length = 10)), df = list(4, 5))
tpmat1 <- btensor(list(seq(0, 1, length = 10), seq(0, 1, length = 10)), df = list(6, 7))
stopifnot(isTRUE(all.equal(update_btensor(tpmat0, df = list(6, 7)), tpmat1)))
})
################################################################################
## Updating bsplines or btensor on the right and side of a formula ##
e <- new.env()
with(e, {
f1 <- y ~ bsplines(x, df = 14) + var1 + var2
f2 <- y ~ btensor(x = list(x1, x2), df = list(50, 31), order = list(3, 5)) + var1 + var2
stopifnot(identical(update_bsplines(f1, df = 13, order = 5), y ~ bsplines(x, df = 13, order = 5) + var1 + var2))
stopifnot(identical(update_btensor(f2, df = list(13, 24), order = list(3, 8)), y ~ btensor(x = list(x1, x2), df = list(13, 24), order = list(3, 8)) + var1 + var2))
})
################################################################################
## Updating a cpr_cp object ##
e <- new.env()
with(e, {
data(spdg, package = "cpr")
init_cp <- cp(pdg ~ bsplines(day, df = 30, bknots = c(-1, 1)) + age + ttm, data = spdg)
updt_cp <- update_bsplines(init_cp, df = 5)
trgt_cp <- cp(pdg ~ bsplines(day, df = 5, bknots = c(-1, 1)) + age + ttm, data = spdg)
stopifnot(isTRUE(all.equal(updt_cp, trgt_cp)))
})
################################################################################
## Updating a cpr_cn object ##
e <- new.env()
with(e, {
init_cn <- cn(pdg ~ btensor(list(day, age)
, df = list(30, 4)
, bknots = list(c(-1, 1), c(45, 53))
) + ttm, data = spdg)
updt_cn <- update_btensor(init_cn, df = list(30, 2), order = list(3, 2))
trgt_cn <- cn(pdg ~ btensor(list(day, age)
, df = list(30, 2)
, bknots = list(c(-1, 1), c(45, 53))
, order = list(3, 2)
) + ttm, data = spdg)
stopifnot(isTRUE(all.equal(updt_cn, trgt_cn)))
})
################################################################################
## verify unevaluated call ##
# update_bsplines and update_btensor need to return unevaluated calls for use in
# the cpr and cnr functions.
e <- new.env()
with(e, {
init_cn <- cn(pdg ~ btensor(list(day, age), df = list(30, 4), bknots = list(c(-1, 1), c(45, 53))) + ttm, data = spdg)
newcall <- update_btensor(init_cn, df = list(30, 2), order = list(3, 2), evaluate = FALSE)
expectedcall <- list()
expectedcall[[1]] <- quote(cn)
expectedcall[["formula"]] <- pdg ~ btensor(list(day, age) , df = list(30, 2) , bknots = list(c(-1, 1), c(45, 53)) , order = list(3, 2)) + ttm
expectedcall[["data"]] <- quote(spdg)
expectedcall <- as.call(expectedcall)
stopifnot( is.call(newcall) )
stopifnot(isTRUE(all.equal(newcall, expectedcall, check.attributes = FALSE)))
})
e <- new.env()
with(e, {
init_cp <- cp(pdg ~ bsplines(day, df = 30, bknots = c(-1, 1)) + age + ttm, data = spdg)
newcall <- update_bsplines(init_cp, df = 5, evaluate = FALSE)
expectedcall <- list()
expectedcall[[1]] <- quote(cp)
expectedcall[["formula"]] <- pdg ~ bsplines(day, df = 5, bknots = c(-1, 1)) + age + ttm
expectedcall[["data"]] <- quote(spdg)
expectedcall <- as.call(expectedcall)
stopifnot( is.call(newcall) )
stopifnot(isTRUE(all.equal(newcall, expectedcall, check.attributes = FALSE)))
})
e <- new.env()
with(e, {
x <- runif(n = 150, min = 1, max = 10)
bmat0 <- bsplines(x, bknots = c(1, 10), df = 5, order = 3)
newcall <- update_bsplines(bmat0, iknots = 4, bknots = c(1, 11), df = 5, order = 4, evaluate = FALSE)
expectedcall <- list()
expectedcall[[1]] <- quote(bsplines)
# the order of the arguments is a possible source of a missmatch in the
# expected calls.
expectedcall[["x"]] <- quote(x)
expectedcall[["df"]] <- 5
expectedcall[["bknots"]] <- c(1, 11)
expectedcall[["order"]] <- 4
expectedcall[["iknots"]] <- 4
expectedcall <- as.call(expectedcall)
stopifnot( is.call(newcall) )
stopifnot(isTRUE(all.equal(newcall, expectedcall, check.attributes = FALSE)))
})
################################################################################
# End of File #
################################################################################
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.