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.
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
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 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:
,
,
,
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)