# Misc

##### Miscellaneous Functions

This documents miscellaneous small functions in Hmisc that may be of interest to users.

`clowess`

runs `lowess`

but if the `iter`

argument
exceeds zero, sometimes wild values can result, in which case
`lowess`

is re-run with `iter=0`

.

`confbar`

draws multi-level confidence bars using small rectangles
that may be of different colors.

`getLatestSource`

fetches and `source`

s the most recent
source code for functions in packages in the Vanderbilty University
CVS repository.

`grType`

retrieves the system option `grType`

, which is
forced to be `"base"`

if the `plotly`

package is not
installed.

`prType`

retrieves the system option `prType`

, which is
set to `"plain"`

if the option is not set. `print`

methods
that allow for markdown/html/latex can be automatically invoked by
setting `options(prType="html")`

or
`options(prType='latex')`

.

`htmlSpecialType`

retrieves the system option
`htmlSpecialType`

, which is set to `"unicode"`

if the option
is not set. `htmlSpecialType='unicode'`

cause html-generating
functions in `Hmisc`

and `rms`

to use unicode for special
characters, and `htmlSpecialType='&'`

uses the older ampersand
3-digit format.

`inverseFunction`

generates a function to find all inverses of a
monotonic or nonmonotonic function that is tabulated at vectors (x,y),
typically 1000 points. If the original function is monotonic, simple linear
interpolation is used and the result is a vector, otherwise linear
interpolation is used within each interval in which the function is
monotonic and the result is a matrix with number of columns equal to the
number of monotonic intervals. If a requested y is not within any
interval, the extreme x that pertains to the nearest extreme y is
returned. Specifying what='sample' to the returned function will cause a
vector to be returned instead of a matrix, with elements taken as a
random choice of the possible inverses.

`james.stein`

computes James-Stein shrunken estimates of cell
means given a response variable (which may be binary) and a grouping
indicator.

`keepHattrib`

for an input variable or a data frame, creates a
list object saving special Hmisc attributes such as `label`

and
`units`

that might be lost during certain operations such as
running `data.table`

. `restoreHattrib`

restores these attributes.

`km.quick`

provides a fast way to invoke `survfitKM`

in the
`survival`

package to get Kaplan-Meier estimates for a
single stratum for a vector of time points (if `times`

is given) or to
get a vector of survival time quantiles (if `q`

is given).

`latexBuild`

takes pairs of character strings and produces a
single character string containing concatenation of all of them, plus
an attribute `"close"`

which is a character string containing the
LaTeX closure that will balance LaTeX code with respect to
parentheses, braces, brackets, or `begin`

vs. `end`

. When
an even-numbered element of the vector is not a left parenthesis,
brace, or bracket, the element is taken as a word that was surrounded
by `begin`

and braces, for which the corresponding `end`

is
constructed in the returned attribute.

`lm.fit.qr.bare`

is a fast stripped-down function for computing
regression coefficients, residuals, \(R^2\), and fitted values. It
uses `lm.fit`

.

`matxv`

multiplies a matrix by a vector, handling automatic
addition of intercepts if the matrix does not have a column of ones.
If the first argument is not a matrix, it will be converted to one.
An optional argument allows the second argument to be treated as a
matrix, useful when its rows represent bootstrap reps of
coefficients. Then ab' is computed. `matxv`

respects the
`"intercepts"`

attribute if it is stored on `b`

by the
`rms`

package. This is used by `orm`

fits that are bootstrap-repeated by `bootcov`

where
only the intercept corresponding to the median is retained. If
`kint`

has nonzero length, it is checked for consistency with the
attribute.

`makeSteps`

is a copy of the dostep function inside the
`survival`

package's `plot.survfit`

function. It expands a
series of points to include all the segments needed to plot step
functions. This is useful for drawing polygons to shade confidence
bands for step functions.

`nomiss`

returns a data frame (if its argument is one) with rows
corresponding to `NA`

s removed, or it returns a matrix with rows
with any element missing removed.

`outerText`

uses `axis()`

to put right-justified text
strings in the right margin. Placement depends on
`par('mar')[4]`

`plotlyParm`

is a list of functions useful for specifying
parameters to `plotly`

graphics.

`plotp`

is a generic to handle `plotp`

methods to make
`plotly`

graphics.

`sepUnitsTrans`

converts character vectors containing values such
as `c("3 days","3day","4month","2 years","2weeks","7")`

to
numeric vectors
(here `c(3,3,122,730,14,7)`

) in a flexible fashion. The user can
specify a
vector of units of measurements and conversion factors. The units
with a conversion factor of `1`

are taken as the target units,
and if those units are present in the character strings they are
ignored. The target units are added to the resulting vector as the
`"units"`

attribute.

`strgraphwrap`

is like `strwrap`

but is for the current
graphics environment.

`tobase64image`

is a function written by Dirk Eddelbuettel that
uses the `base64enc`

package to convert a png graphic file to
base64 encoding to include as an inline image in an html file.

`trap.rule`

computes the area under a curve using the trapezoidal
rule, assuming `x`

is sorted.

`trellis.strip.blank`

sets up Trellis or Lattice graphs to have a
clear background on the strips for panel labels.

`unPaste`

provides a version of the S-Plus `unpaste`

that
works for R and S-Plus.

`whichClosePW`

is a very fast function using weighted multinomial
sampling to determine which element of a vector is "closest" to each
element of another vector. `whichClosest`

quickly finds the closest
element without any randomness.

`whichClosek`

is a slow function that finds, after jittering the
lookup table, the `k`

closest matchest to each element of the
other vector, and chooses from among these one at random.

`xless`

is a function for Linux/Unix users to invoke the system
`xless`

command to pop up a window to display the result of
`print`

ing an object.

- Keywords
- utilities, programming, iplot

##### Usage

```
confbar(at, est, se, width, q = c(0.7, 0.8, 0.9, 0.95, 0.99),
col = gray(c(0, 0.25, 0.5, 0.75, 1)),
type = c("v", "h"), labels = TRUE, ticks = FALSE,
cex = 0.5, side = "l", lwd = 5, clip = c(-1e+30, 1e+30),
fun = function(x) x,
qfun = function(x) ifelse(x == 0.5, qnorm(x),
ifelse(x < 0.5, qnorm(x/2),
qnorm((1 + x)/2))))
getLatestSource(x=NULL, package='Hmisc', recent=NULL, avail=FALSE,
type=c('svn','cvs'))
grType()
prType()
htmlSpecialType()
inverseFunction(x, y)
james.stein(y, group)
keepHattrib(obj)
km.quick(S, times, q)
latexBuild(…, insert, sep='')
lm.fit.qr.bare(x, y, tolerance, intercept=TRUE, xpxi=FALSE, singzero=FALSE)
matxv(a, b, kint=1, bmat=FALSE)
nomiss(x)
outerText(string, y, cex=par('cex'), …)
plotlyParm
plotp(data, ...)
restoreHattrib(obj, attribs)
sepUnitsTrans(x, conversion=c(day=1, month=365.25/12, year=365.25, week=7),
round=FALSE, digits=0)
strgraphwrap(x, width = 0.9 * getOption("width"),
indent = 0, exdent = 0,
prefix = "", simplify = TRUE, units='user', cex=NULL)
tobase64image(file, Rd = FALSE, alt = "image")
trap.rule(x, y)
trellis.strip.blank()
unPaste(str, sep="/")
whichClosest(x, w)
whichClosePW(x, w, f=0.2)
whichClosek(x, w, k)
xless(x, …, title)
```

##### Arguments

- a
a numeric matrix or vector

- alt,Rd
see

`base64::img`

- at
x-coordinate for vertical confidence intervals, y-coordinate for horizontal

- attribs
an object returned by

`keepHattrib`

- avail
set to

`TRUE`

to have`getLatestSource`

return a data frame of available files and latest versions instead of fetching any- b
a numeric vector

- cex
character expansion factor

- clip
interval to truncate limits

- col
vector of colors

- conversion
a named numeric vector

- data
an object having a

`plotp`

method- digits
number of digits used for

`round`

- est
vector of point estimates for confidence limits

- f
a scaling constant

- file
a file name

- fun
function to transform scale

- group
a categorical grouping variable

- insert
a list of 3-element lists for

`latexBuild`

. The first of each 3-element list is a character string with an environment name. The second specifies the order:`"before"`

or`"after"`

, the former indicating that when the environment is found, the third element of the list is inserted before or after it, according to the second element.- intercept
set to

`FALSE`

to not automatically add a column of ones to the`x`

matrix- k
get the

`k`

closest matches- kint
which element of

`b`

to add to the result if`a`

does not contain a column for intercepts- bmat
set to

`TRUE`

to consider`b`

a matrix of repeated coefficients, usually resampled estimates with rows corresponding to resamples- labels
set to

`FALSE`

to omit drawing confidence coefficients- lwd
line widths

- package
name of package for

`getLatestSource`

, default is`'Hmisc'`

- obj
a variable, data frame, or data table

- q
vector of confidence coefficients or quantiles

- qfun
quantiles on transformed scale

- recent
an integer telling

`getLatestSource`

to get the`recent`

most recently modified files from the package- round
set to

`TRUE`

to round converted values- S
a

`Surv`

object- se
vector of standard errors

- sep
a single character string specifying the delimiter. For

`latexBuild`

the default is`""`

.- side
for

`confbar`

is`"b","l","t","r"`

for bottom, left, top, right.- str
a character string vector

- string
a character string vector

- ticks
set to

`TRUE`

to draw lines between rectangles- times
a numeric vector of times

- title
a character string to title a window or plot

- tolerance
tolerance for judging singularity in matrix

- type
`"v"`

for vertical,`"h"`

for horizontal. For`getLatestSource`

this specifies the type of source code repository,`'svn'`

(the default) or`'cvs'`

, which is now outdated as Subversion has replaced CVS in the Vanderbilt Biostatistics server.- w
a numeric vector

- width
width of confidence rectanges in user units, or see

`strwrap`

- x
a numeric vector (matrix for

`lm.fit.qr.bare`

) or data frame. For`xless`

may be any object that is sensible to`print`

. For`sepUnitsTrans`

is a character or factor variable. For`getLatestSource`

is a character string or vector of character strings containing base file names to retrieve from CVS. Set`x='all'`

to retrieve all source files. For`clowess`

,`x`

may also be a list with x and y components. For`inverseFunction`

,`x`

and`y`

contain evaluations of the function whose inverse is needed.`x`

is typically an equally-spaced grid of 1000 points. For`strgraphwrap`

is a character vector.- xpxi
set to

`TRUE`

to add an element to the result containing the inverse of \(X'X\)- singzero
set to

`TRUE`

to set coefficients corresponding to singular variables to zero instead of`NA`

.- y
a numeric vector. For

`inverseFunction`

`y`

is the evaluated function values at`x`

.- indent, exdent, prefix
see

`strwrap`

- simplify
see

`sapply`

- units
see

`par`

- …
arguments passed through to another function. For

`latexBuild`

represents pairs, with odd numbered elements being character strings containing LaTeX code or a zero-length object to ignore, and even-numbered elements representing LaTeX left parenthesis, left brace, or left bracket, or environment name.

##### Examples

```
# NOT RUN {
trap.rule(1:100,1:100)
unPaste(c('a;b or c','ab;d','qr;s'), ';')
sepUnitsTrans(c('3 days','4 months','2 years','7'))
set.seed(1)
whichClosest(1:100, 3:5)
whichClosest(1:100, rep(3,20))
whichClosePW(1:100, rep(3,20))
whichClosePW(1:100, rep(3,20), f=.05)
whichClosePW(1:100, rep(3,20), f=1e-10)
x <- seq(-1, 1, by=.01)
y <- x^2
h <- inverseFunction(x,y)
formals(h)$turns # vertex
a <- seq(0, 1, by=.01)
plot(0, 0, type='n', xlim=c(-.5,1.5))
lines(a, h(a)[,1]) ## first inverse
lines(a, h(a)[,2], col='red') ## second inverse
a <- c(-.1, 1.01, 1.1, 1.2)
points(a, h(a)[,1])
d <- data.frame(x=1:2, y=3:4, z=5:6)
d <- upData(d, labels=c(x='X', z='Z lab'), units=c(z='mm'))
a <- keepHattrib(d)
d <- data.frame(x=1:2, y=3:4, z=5:6)
d2 <- restoreHattrib(d, a)
sapply(d2, attributes)
# }
# NOT RUN {
getLatestSource(recent=5) # source() most recent 5 revised files in Hmisc
getLatestSource('cut2') # fetch and source latest cut2.s
getLatestSource('all') # get everything
getLatestSource(avail=TRUE) # list available files and latest versions
# }
```

*Documentation reproduced from package Hmisc, version 4.4-0, License: GPL (>= 2)*