# 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
```