Nothing

```
#probhat: Multivariate Generalized Kernel Smoothing and Related Statistical Methods
#Copyright (C), Abby Spurdle, 2019 to 2021
#This program is distributed without any warranty.
#This program is free software.
#You can modify it and/or redistribute it, under the terms of:
#The GNU General Public License, version 2, or (at your option) any later version.
#You should have received a copy of this license, with R.
#Also, this license should be available at:
#https://cran.r-project.org/web/licenses/GPL-2
#unpacked by .gmix, .xmix
.mix = function (continuous, g, x, w, conditions, throw.warning, ...)
{ objs = .cat.data (g, TRUE)
gnames = nlevels = levels = n = m = g = NULL
.UNPACK (objs)
mg = m
xnames = .varnames (x, "x", TRUE)
x = .val.x.uv.or.mv (x)
colnames (x) = xnames
mx = ncol (x)
is.weighted = (! (missing (w) || is.na (w [1]) ) )
w = .val.w (is.weighted, n, w, FALSE)
if (mg == 0 || mx == 0)
stop ("need at least one categorical and continuous variable")
if (n != nrow (x) )
stop ("number of categorical obs != number continuous obs")
if (any (gnames %in% xnames) )
stop ("categorical and continuous variables need unique names")
ncon = length (conditions)
bnames = c (gnames, xnames)
connames = names (conditions)
if (is.null (connames) )
stop ("unnamed conditions in mixed conditional model")
if (! all (connames %in% bnames) )
{ cstr = paste (connames, collapse=" ")
bstr = paste (bnames, collapse=" ")
err = paste0 (
"condition names not in variable names:\n ",
"cons: ", cstr, "\n ",
"vars: ", bstr)
stop (err)
}
gconditions = conditions [connames %in% gnames]
xconditions = unlist (conditions [connames %in% xnames])
ngcon = length (gconditions)
nxcon = length (xconditions)
if (continuous)
{ if (ngcon != mg)
stop ("number of g conditions != number of g variables")
if (nxcon != mx - 1)
stop ("number of x conditions != number of x variables minus one")
}
else
{ if (ngcon != mg - 1)
stop ("number of g conditions != number of g variables minus one")
if (nxcon != mx)
stop ("number of x conditions != number of x variables")
}
gJ = match (names (gconditions), gnames)
xJ = match (names (xconditions), xnames)
n0 = n
if (ngcon > 0)
{ gJ = c (gJ, (1:mg)[-gJ])
gnames = gnames [gJ]
nlevels = nlevels [gJ]
levels = levels [gJ]
g = g [,gJ, drop=FALSE]
I = rep (TRUE, n)
for (k in seq_len (ngcon) )
I = I & .in.col (nlevels [k], levels [[k]], gconditions [[k]], g [,k])
n = sum (I)
g = g [I,, drop=FALSE]
x = x [I,, drop=FALSE]
w = w [I]
}
if (nxcon > 0)
{ xJ = c (xJ, (1:mx)[-xJ])
xnames = xnames [xJ]
x = x [,xJ, drop=FALSE]
}
if (n == 0)
{ if (throw.warning)
warning ("no observations within conditional window")
NULL
}
else
{ if (continuous)
.LIST (ngcon, nxcon, gnames, xnames, gconditions, xconditions, n0, mg, mx, x, w)
else
{ variable.name = gnames [mg]
nlevels = nlevels [mg]
levels = levels [[mg]]
g = g [,mg]
.LIST (is.weighted, gnames, xnames, nlevels, levels, n0, n, mg, mx, g, x, w, gconditions, xconditions)
}
}
}
.gmix = function (f, cv, g, x, w, conditions, throw.warning, ..., bw, smoothness=1)
{ mixobj = .mix (FALSE, g, x, w, conditions, throw.warning, ...)
if (is.null (mixobj) )
NULL
else
{ is.weighted = gnames = xnames = nlevels = levels = n0 = n = mg = mx = g = x = w = gconditions = xconditions = NULL
.UNPACK (mixobj)
if (is.weighted)
h = w
else
h = rep (1, n)
.gsum = sum (h)
.probs = .iterate.uv (.pmfuv.cat.eval.scalar, n, g, h / sum (h), u=1:nlevels)
.PROBS = cumsum (.probs)
.PROBS [nlevels] = 1
gfh = .EXTEND (.pmfuv.cat.eval, .CV.pmfuv.cat,
.probs, .PROBS,
freq=FALSE, nlevels, glim = c (1, nlevels), levels, n, g, h)
bw = auto.cbw (x, bw=bw, smoothness=smoothness)
cfh = pdfmv.cks (x, ..., bw=bw, w=w)
const = cfh (xconditions)
if (const <= 0)
{ if (throw.warning)
warning ("no observations within conditional window")
NULL
}
else
{ cfh.set = vector ("list", nlevels)
for (k in 1:nlevels)
{ I = (g == k)
if (sum (I) > 0)
{ xsub = x [I,, drop=FALSE]
wsub = NA
if (is.weighted)
wsub = w [I]
cfh.set [[k]] = pdfmv.cks (xsub, ..., bw=bw, w=wsub)
}
}
.probs = rep (nlevels, 0)
for (k in 1:nlevels)
{ if (! is.null (cfh.set [[k]]) )
.probs [k] = gfh (k) * cfh.set [[k]](xconditions) / const
}
.PROBS = cumsum (.probs)
.PROBS [nlevels] = 1
.EXTEND (f, cv,
.probs, .PROBS, .gsum,
gnames, xnames,
gconditions, xconditions, nlevels, glim = c (1, nlevels), levels, n, n0, mg, mx, g, h)
}
}
}
.xmix = function (constructor, constructor.c, cv, g, x, w, conditions, throw.warning, ...)
{ mixobj = .mix (TRUE, g, x, w, conditions, throw.warning)
if (is.null (mixobj) )
NULL
else
{ ngcon = nxcon = NULL
gnames = xnames = gconditions = xconditions = n0 = mg = mx = x = w = NULL
.UNPACK (mixobj)
if (length (xconditions) == 0)
{ sf = constructor (x, ..., w=w)
}
else
sf = constructor.c (x, ..., conditions=xconditions, w=w)
class (sf) = cv
sf %$% ".ngcon" = ngcon
sf %$% ".nxcon" = nxcon
sf %$% "gnames" = gnames
sf %$% "xnames" = xnames
sf %$% "gconditions" = gconditions
sf %$% "xconditions" = xconditions
sf %$% "n0" = n0
sf %$% "mg" = mg
sf %$% "mx" = mx
sf
}
}
ph4.pmfc.gmix = function (g, x, ..., conditions, warning=TRUE, w)
{ .arg.error (...)
.gmix (.pmfuv.cat.eval, .CV.pmfc.gmix, g, x, w, conditions, warning, ...)
}
ph4.cdfc.gmix = function (g, x, ..., conditions, warning=TRUE, w)
{ .arg.error (...)
.gmix (.cdfuv.cat.eval, .CV.cdfc.gmix, g, x, w, conditions, warning, ...)
}
ph4.qfc.gmix = function (g, x, ..., conditions, warning=TRUE, w)
{ .arg.error (...)
.gmix (.qfuv.cat.eval, .CV.qfc.gmix, g, x, w, conditions, warning, ...)
}
ph4.pdfc.xmix = function (g, x, ..., conditions, warning=TRUE, w)
.xmix (pdfuv.cks, pdfc.cks, .CV.pdfc.xmix, g, x, w, conditions, warning, ...)
ph4.cdfc.xmix = function (g, x, ..., conditions, warning=TRUE, w)
.xmix (cdfuv.cks, cdfc.cks, .CV.cdfc.xmix, g, x, w, conditions, warning, ...)
ph4.qfc.xmix = function (g, x, ..., conditions, warning=TRUE, w)
.xmix (qfuv.cks, qfc.cks, .CV.qfc.xmix, g, x, w, conditions, warning, ...)
```

**Any scripts or data that you put into this service are public.**

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.