# How to Convert a Character to Numeric in R

**Basic R Syntax:**

x_num <- as.numeric(x) |

x_num <- as.numeric(x)

Do you need more explanations? In the following article, I’ll provide you with all important information for the **conversion of character vectors to numeric in R**.

## Example: Convert Character to Numeric in R

Before we can dive into the transformation of a character variable to numeric, we need to create an example character in R. Consider the following vector:

set.seed(55555) # Set seed x <- as.character(sample(c(2, 5, 7, 8), 50, replace = TRUE)) # Example character vector |

set.seed(55555) # Set seed x <- as.character(sample(c(2, 5, 7, 8), 50, replace = TRUE)) # Example character vector

Our string consists of the four character values 2, 5, 7 & 8:

`x # Print example vector to R console` |

x # Print example vector to R console

**Graphic 1: Example Character String Printed to the RStudio Console**

Now, we can continue with the important part – How to convert this character string to numeric?

No Problem:

x_num <- as.numeric(x) # Convert string to numeric in R x_num # Print converted x to the console # 8 7 5 8 2 5 2 5 2 7 7 7 7... |

x_num <- as.numeric(x) # Convert string to numeric in R x_num # Print converted x to the console # 8 7 5 8 2 5 2 5 2 7 7 7 7...

That’s basically how to apply the as.numeric function in R. However, if you need some more explanations for the conversion of data types, you might have a look at the following video of my YouTube channel. In the video, I’m explaining how to convert character and factors to numeric in R:

## Convert All Characters of a Data Frame to Numeric

As you have seen, to convert a vector or variable with the character class to numeric is no problem. However, sometimes it makes sense to change all character columns of a **data frame or matrix** to numeric.

Consider the following R data.frame:

x1 <- c("5", "2", "7", "5") # Character x2 <- c("77", "23", "84", "11") # Another character x3 <- as.factor(c("4", "1", "1", "8")) # Factor x4 <- c(3, 3, 9, 7) # Numeric data <- data.frame(x1, x2, x3, x4, # Create data frame stringsAsFactors = FALSE) sapply(data, class) # Print classes of all colums # x1 x2 x3 x4 # "character" "character" "factor" "numeric" |

x1 <- c("5", "2", "7", "5") # Character x2 <- c("77", "23", "84", "11") # Another character x3 <- as.factor(c("4", "1", "1", "8")) # Factor x4 <- c(3, 3, 9, 7) # Numeric data <- data.frame(x1, x2, x3, x4, # Create data frame stringsAsFactors = FALSE) sapply(data, class) # Print classes of all colums # x1 x2 x3 x4 # "character" "character" "factor" "numeric"

**Table 1: Example Data Frame with Different Variable Classes**

With the following R code, you are able to recode all variables – **no matter which variable class** – of a data frame to numeric:

data_num <- as.data.frame(apply(data, 2, as.numeric)) # Convert all variable types to numeric sapply(data_num, class) # Print classes of all colums # x1 x2 x3 x4 # "numeric" "numeric" "numeric" "numeric" |

data_num <- as.data.frame(apply(data, 2, as.numeric)) # Convert all variable types to numeric sapply(data_num, class) # Print classes of all colums # x1 x2 x3 x4 # "numeric" "numeric" "numeric" "numeric"

However, in many situations it is better to **convert only character columns to numeric** (i.e. not column X3, since this column should be kept as factor). You could do that with the following code in R:

char_columns <- sapply(data, is.character) # Identify character columns data_chars_as_num <- data # Replicate data data_chars_as_num[ , char_columns] <- as.data.frame( # Recode characters as numeric apply(data_chars_as_num[ , char_columns], 2, as.numeric)) sapply(data_chars_as_num, class) # Print classes of all colums # x1 x2 x3 x4 # "numeric" "numeric" "factor" "numeric" |

char_columns <- sapply(data, is.character) # Identify character columns data_chars_as_num <- data # Replicate data data_chars_as_num[ , char_columns] <- as.data.frame( # Recode characters as numeric apply(data_chars_as_num[ , char_columns], 2, as.numeric)) sapply(data_chars_as_num, class) # Print classes of all colums # x1 x2 x3 x4 # "numeric" "numeric" "factor" "numeric"

## Example Video: How to Change Variable Types

Further examples needed? Have a look at the following R Programming tutorial of the YouTube Channel LearnR. The speaker discusses different data transformations from one data class to another.

## Further Reading

- How to Convert Factor to Numeric in R
- Convert a Data Frame Column to Numeric
- type.convert R Function
- The R Programming Language

### Subscribe to my free statistics newsletter: