Numeric testing and coercion {admisc} | R Documentation |
Coerces objects to class "numeric", and checks if an object is numeric.
asNumeric(x, ...)
possibleNumeric(x, each = FALSE)
wholeNumeric(x, each = FALSE)
x |
A vector of values |
each |
Logical, return the result for each value in the vector |
... |
Other arguments to be passed for class based methods |
Unlike the function as.numeric
() from the base
package, the function asNumeric()
coerces to numeric without a
warning if any values are not numeric. All such values are considered NA missing.
This is a generic function, with specific class methods for factors and objects
of class “declared”. The usual way of coercing factors to numeric is
meaningless, converting the inner storage numbers. The class method of this
particular function coerces the levels to numeric, via the default activated
argument levels
.
For objects of class “declared”, a similar argument called na_values
is by default activated to coerce the declared missing values to numeric.
The function possibleNumeric()
tests if the values in a vector are
possibly numeric, irrespective of their storing as character or numbers. In the
case of factors, it tests its levels representation.
Function wholeNumeric()
tests if numbers in a vector are whole
(round) numbers. Whole numbers are different from “integer” numbers (which
have special memory representation), and consequently the function
is.integer
() tests something different, how numbers are stored in
memory (see the description of function double()
for
more details).
The function
Adrian Dusa
x <- c("-.1", " 2.7 ", "B")
asNumeric(x) # no warning
f <- factor(c(3, 2, "a"))
asNumeric(f)
asNumeric(f, levels = FALSE)
possibleNumeric(x) # FALSE
possibleNumeric(x, each = TRUE) # TRUE TRUE FALSE
possibleNumeric(c("1", 2, 3)) # TRUE
is.integer(1) # FALSE
# Signaling an integer in R
is.integer(1L) # TRUE
wholeNumeric(1) # TRUE
wholeNumeric(c(1, 1.1), each = TRUE) # TRUE FALSE