Misc {Hmisc} | R Documentation

## Miscellaneous Functions

### Description

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

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

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

`km.quick` provides a fast way to invoke `survfit.km` 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).

`lm.fit.qr.bare` is a fast stripped-down function for computing regression coefficients, residuals, R^2, and fitted values. It uses the Fortran routines `dqrls`.

`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.

`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 `text()` to put test strings in left or right margins. It temporarily sets `par(xpd=NA)` if using R.

`sepUnitsTrans` converts character vectors containing values such as `c("3 days","3day","4month","2 years","7")` to numeric vectors (here `c(3,3,122,730,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.

`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.

`under.unix` is a scalar logical value that is `TRUE` if you are running Linux or Unix.

`.R.` is a logical value set to `TRUE` if running R, `FALSE` for S-Plus.

`.SV4.` is a logical value set to `TRUE` if running version 4 of the S language under S-Plus, `FALSE` otherwise.

`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.

`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.

### Usage

    confbar(at, est, se, width, q = c(0.7, 0.8, 0.9, 0.95, 0.99),
            col = if (.R.) gray(c(0, 0.25, 0.5, 0.75, 1)) else
                  if (under.unix) c(1, 0.8, 0.5, 0.2, 0.065) else
                  c(1, 4, 3, 2, 5),
            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))))
    james.stein(y, group)
    km.quick(S, times, q)
    lm.fit.qr.bare(x, y, tolerance, intercept=TRUE, xpxi=FALSE)
    matxv(a, b, kint=1)
    nomiss(x)
    outerText(string, y, setAside=string[1], side=4, space=1,
              adj=1, cex=par('cex'))
    sepUnitsTrans(x, conversion=c(day=1, month=365.25/12, year=365.25),
                  round=FALSE, digits=0)
    trap.rule(x, y)
    trellis.strip.blank()
    unPaste(str, sep="/", extended=FALSE)
    whichClosest(x, w)
    whichClosePW(x, w, f=0.2)
    xless(x, ..., title)

### Arguments

`at` | x-coordinate for vertical confidence intervals, y-coordinate for horizontal
`est` | vector of point estimates for confidence limits
`se` | vector of standard errors
`width` | width of confidence rectanges in user units
`q` | vector of confidence coefficients or quantiles
`col` | vector of colors
`type` | `"v"` for vertical, `"h"` for horizontal
`labels` | set to `FALSE` to omit drawing confidence coefficients
`ticks` | set to `TRUE` to draw lines between rectangles
`cex` | character expansion factor
`side` | for `confbar` is `"b","l","t","r"` for bottom, left, top, right. For `outText` is the using integers 1-4 corresponding to these.
`lwd` | line widths
`clip` | interval to truncate limits
`fun` | function to transform scale
`qfun` | quantiles on transformed scale
`group` | a categorical grouping variable
`S` | a `Surv` object
`times` | a numeric vector of times
`tolerance` | tolerance for judging singularity in matrix
`intercept` | set to `FALSE` to not automatically add a column of ones to the `x` matrix
`xpxi` | set to `TRUE` to add an element to the result containing the inverse of X'X
`a` | a numeric matrix or vector
`b` | a numeric vector
`kint` | which element of `b` to add to the result if `a` does not contain a column for intercepts
`string` | a character string vector
`setAside` | for `adj=1 side=4`, is a character string used to determine the space to set aside for all strings.
`space` | the number of extra characters to leave to the left of the string(s) (`adj=0`) or to the right (`adj=1`)
`adj` | 0 for left justification, 0.5 for centered, 1 for right
`conversion` | a named numeric vector
`round` | set to `TRUE` to round converted values
`digits` | number of digits used for `round`
`str` | a character string vector
`w` | a numeric vector
`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.
`y` | a numeric vector
`sep` | a single character string specifying the delimiter
`extended` | see `strsplit` in R
`f` | a scaling constant
`title` | a character string to title a window or plot
`...` | arguments passed through to another function

### Author(s)

Frank Harrell

### Examples

    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)

[Package Contents]