# Convert objects to numeric with as.numeric()

The `as.numeric` function is a basic R function that converts R objects to numeric. In this tutorial you will learn how to coerce to numeric and how to check if an object is numeric or not.

## Syntax and arguments

The syntax of the `as.numeric` function is the following:

``as.numeric(x, ...)``

The function takes an object (`x`) as argument, being:

• x: object to be coerced to numeric.
• âŠ: additional arguments if needed.

## Usage

### Character to numeric

Consider that you have a character vector containing numbers:

``````x <- c("19", "28", "26")

x``````
``"19" "28" "26"``

In this scenario, if you want to make mathematical operations you will get an error, like in the following example where we try to multiply the vector by two:

``````x <- c("19", "28", "26")

x <- x * 2``````
``Error in x * 2 : non-numeric argument to binary operator``

If you convert your vector to numeric now R will interpret the values as numbers, so you will be able to perform mathematical operations.

``````x <- c("19", "28", "26")

# Convert 'x' to numeric
x <- as.numeric(x)
x``````
``19 28 26``

Now you can multiply the values and get the desired result.

``````x <- x * 2
x``````
``38 56 52``

If the character vector contains non-numeric strings and you use the `as.numeric` function that element will be converted to `NA` and R will print âNAs introduced by coercionâ as a warning.

``````x <- c("19", "28", "26", "A")

# Convert 'x' to numeric
x <- as.numeric(x)
x``````
``````Warning message:
NAs introduced by coercion
> x
[1] 19 28 26 NA``````

### Factor to numeric

Consider the following factor for illustration purposes:

``````f <- factor(c("3", "14", "15", "93"))

f``````
``````3  14 15 93
Levels: 14 15 3 93``````

Note that the levels of the factor doesnât have the same order as the input character vector.

If you want to convert the factor to numeric you will need to use the `as.numeric` but also the `as.character` function as follows:

``````f <- factor(c("3", "14", "15", "93"))

f <- as.numeric(as.character(f))
f``````
``3 14 15 93``

A more efficient alternative for long vectors is to use the following code:

``````f <- factor(c("3", "14", "15", "93"))

f <- as.numeric(levels(f))[f]

f``````

If you want to convert a factor to the original vector and with the same order never use `as.numeric(f)`, as it wonât return the desired numeric vector. Learn more about factors.

### Boolean to numeric

Consider that you have a boolean vector like the following:

``````b <- c(TRUE, FALSE, TRUE, TRUE, FALSE)

b``````
``TRUE FALSE  TRUE  TRUE FALSE``

You can convert the vector to numeric with the `as.numeric` function which will convert `TRUE` to 1 and `FALSE` to 0.

``````b <- c(TRUE, FALSE, TRUE, TRUE, FALSE)

b <- as.numeric(b)

b``````
``1 0 1 1 0``

## Check if an object is numeric with `is.numeric`

The `is.numeric` function is useful to check if the data type of you object is numeric or not. If so, it will return `TRUE` and `FALSE` if not.

``````x <- c("19", "28", "26", "A")

# Check if x is numeric
is.numeric(x) # FALSE

# Convert 'x' to numeric
x <- as.numeric(x)

# Check again
is.numeric(x) # TRUE``````