"EMPIRqua.regress" <-
function(f=0.5, u=seq(0.01,0.99, by=0.01), empinv=NULL,
lowess=FALSE, f.lowess=1/5, ...) {
cols <- attributes(empinv)$colnames
ix <- 1:length(cols)
ix.needed <- ix[as.character(cols) == as.character(f)]
if(length(ix.needed) != 1) {
warning("f=",f," value does not match against column names in empinv, ",
"likely source of this is a real number with too many digits ",
"relative to a keyed entry")
return(data.frame(U=NA, V=NA))
}
U.available <- attributes(empinv)$rownames
V.available <- empinv[,ix.needed]
UVdf <- data.frame(U=U.available, V=V.available)
UVdf <- UVdf[complete.cases(UVdf),]
# we know that the x are given in ordered seqeuence to so avoid
# the warning
# In regularize.values(x, y, ties, missing(ties)) :
# collapsing to unique 'x' values
V <- approx(U.available, y=V.available, xout=u, rule=2, ties="ordered")$y
z <- data.frame(U=u,V=V)
if(lowess) {
lws <- lowess(z$U, y=z$V, f=f.lowess)
z <- data.frame(U=lws$x, V=lws$y)
z$V[z$V < 0] <- 0; z$V[z$V > 1] <- 1 # -WHA 2019/06/28 (found a case)
}
return(z)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.