R: Score a Series of Binary Variables

score.binary {Hmisc} | R Documentation

## Score a Series of Binary Variables

### Description

Creates a new variable from a series of logical conditions. The new variable can be a hierarchical category or score derived from considering the rightmost `TRUE` value among the input variables, an additive point score, a union, or any of several others by specifying a function using the `fun` argument.

### Usage

    score.binary(..., fun=max, points=1:p,
                 na.rm=funtext == "max", retfactor=TRUE)

### Arguments

`...` | a list of variables or expressions which are considered to be binary or logical
`fun` | a function to compute on each row of the matrix represented by a specific observation of all the variables in `...`
`points` | points to assign to successive elements of `...` . The default is `1, 2, ..., p`, where `p` is the number of elements. If you specify one number for `points`, that number will be duplicated (i.e., equal weights are assumed).
`na.rm` | set to `TRUE` to remove `NA`s from consideration when processing each row of the matrix of variables in `...` . For `fun=max`, `na.rm=TRUE` is the default since `score.binary` assumes that a hierarchical scale is based on available information. Otherwise, `na.rm=FALSE` is assumed. For `fun=mean` you may want to specify `na.rm=TRUE`.
`retfactor` | applies if `fun=max`, in which case `retfactor=TRUE` makes `score.binary` return a `factor` object since a hierarchical scale implies a unique choice.

### Value

a `factor` object if `retfactor=TRUE` and `fun=max` or a numeric vector otherwise. Will not contain NAs if `na.rm=TRUE` unless every variable in a row is `NA`. If a `factor` object is returned, it has levels `"none"` followed by character string versions of the arguments given in `...` .

### See Also

`any`, `sum`, `max`, `factor`

### Examples

    set.seed(1)
    age <- rnorm(25, 70, 15)
    previous.disease <- sample(0:1, 25, TRUE)
    #Hierarchical scale, highest of 1:age>70  2:previous.disease
    score.binary(age>70, previous.disease, retfactor=FALSE)
    #Same as above but return factor variable with levels "none" "age>70"
    # "previous.disease"
    score.binary(age>70, previous.disease)

    #Additive scale with weights 1:age>70  2:previous.disease
    score.binary(age>70, previous.disease, fun=sum)
    #Additive scale, equal weights
    score.binary(age>70, previous.disease, fun=sum, points=c(1,1))
    #Same as saying points=1

    #Union of variables, to create a new binary variable
    score.binary(age>70, previous.disease, fun=any)

[Package Hmisc version 4.7-0 Index]