Converts a factor
to a numeric vector
with approximately the
numeric values of its levels
. Hence, the levels
of the
factor
must be numeric values, stored as characters. It uses the method
described in factor
. Use as.numeric
to convert a
factor
to a numeric vector
with integers 1, 2, ... corresponding
to the positions in the list of levels. The numeric values can be centred and/or scaled.
You can also use fac.recast
to recode the levels to numeric
values. If a numeric
is supplied and both center
and scale
are
FALSE
, it is left unchanged; otherwise, it will be centred and scaled
according to the settings of center
and scale
.
as.numfac(factor, center = FALSE, scale = FALSE)
A numeric vector
. An NA
will be stored for any value of the factor whose
level is not a number.
The factor
to be converted.
Either a logical
value or a numeric
-alike value,
where numeric-alike means that as.numeric
will be applied
successfully if is.numeric
is not TRUE
.
Either a logical
value, a numeric
-alike vector,
where numeric-alike means that as.numeric
will be applied
successfully if is.numeric
is not TRUE
.
Chris Brien
The value of center
specifies how the centring is done. If it is TRUE
,
the mean of the unique values of the factor
are subtracted, after the
factor
is converted to a numeric
. If center
is
numeric
, it is subtracted from factor
's converted
numeric
values. If center
is FALSE
no scaling is done.
The value of scale
specifies how scaling is performed, after any centring is
done. If scale
is TRUE
, the unique converted values of the
factor
are divided by (i) the standard deviaton when the values have
been centred and (ii) the root-mean-square error if they have not been centred;
the root-mean-square is given by \(\sqrt{\Sigma(x^2)/(n-1)}\),
where x
contains the unique converted factor
values and n is the number
of unique values. If scale
is FALSE
no scaling is done.
as.numeric
, fac.recast
in package dae,
factor
, scale
.
## set up a factor and convert it to a numeric vector
a <- factor(rep(1:6, 4))
x <- as.numfac(a)
x <- as.numfac(a, center = TRUE)
x <- as.numfac(a, center = TRUE, scale = TRUE)
Run the code above in your browser using DataLab