Hmisc (version 3.0-12)

score.binary: 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 weight
na.rm
set to TRUE to remove NAs 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
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

Run this code
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)

Run the code above in your browser using DataCamp Workspace