How do you convert a character to numeric in R? You can use the as.numeric() function to convert the data in R programming from character to numeric. Converting character data to numeric in R is essential for statistical analysis and operations. Numeric data enables mathematical computations that cannot be done with character data, making this conversion crucial for data analysis projects. In this article, I will explain using various approaches of R how to convert data from character to numeric.
Key points-
- In R, data types are fundamental concepts that define the nature of the data and specify how it can be used in computations and analyses
- Strings representing textual data are also referred to as character data. Character data is enclosed in either single or double quotes.
- Numeric data in R is one of the most commonly used data types and is essential for performing mathematical and statistical operations. Numeric data can be divided into two main subtypes: double and integer
- The
as.numeric()
function can convert character strings, factors, and other data types to numeric format. - When non-numeric characters are present in the input,
as.numeric()
will generate a warning message indicating thatNA
values were introduced due to coercion. - The function can be applied to data frame columns, converting specific columns from character or factor types to numeric types.
- Using
apply()
along with the as.numeric() can convert all columns in a data frame to a numeric type. - When dealing with factors,
as.numeric()
should be used after converting the factor to a character string to avoid unexpected results. - It is important to handle potential conversion errors by checking for
NA
values and understanding the warning messages produced during the conversion process.
as.numeric() Function
as.numeric()
is a versatile function in R that efficiently converts various data types to numeric format. Effective handling of conversions plays crucial role for improving data manipulation tasks. This function allows to handle conversions across different R objects, including vectors, matrices, and data frames.
Syntax of numeric() Function
Following is the syntax of the R numeric() function.
# Synatx of the numeric() function
as.numeric(x)
Parameter
It allows only one parameter.
x:
The object is converted to numeric.
Return Value
It returns the objects of numeric data type. If the input is a character string that doesn’t represent a number as.numeric()
will return NA
and produce a warning message.
Convert Character Vector to Numeric in R using as.numeric()
Let’s create a character vector and verify its type using the class()
function. Next, we’ll pass this vector to the as.numeric()
function, which will convert the data type to numeric. Finally, we’ll use the class()
function again to confirm the type of the converted vector.
# Convert character to numeric using as.numeric()
# create character vector
char_vector <- c("10", "20", "30", "40", "50")
print("given character vector:")
print(char_vector)
print("Type of the vector:")
print(class(char_vector))
# Convert character vector to numeric vector
num_vector <- as.numeric(char_vector)
print("After converting character vector into numeric vector")
print(num_vector)
print("Type of the vector:")
print(class(char_vector))
Yields below output.
Convert Character Column to Numeric in R
You can also convert the data frame column from character to numeric using the as.numeric()
function. To do this, first create a data frame with character-type columns. Then, use the sapply()
function to determine the data type of each column in the data frame.
# Create dataframe with 5 rows and 4 columns
df = data.frame(column1 = c('2','1','3','4','5'), column2=c('1','2','3','5','4'),
column3 = as.factor(c('56','23','45','67','43')),
column4 = c(10, 20, 30, 40, 50))
print("Given data frame")
print(df)
print("Get the data type of each column:")
print(sapply(df, class))
Yields below output.
After creating the data frame and determining the types of its columns, you can convert the desired column from character to numeric by passing it to the as.numeric()
function. This will change the column’s data type from character to numeric. Finally, you can use the sapply()
function to verify the data type of each column in the data frame.
# Convert specified charcetr column to numeric
df$column1 = as.numeric(df$column1)
# Get the data type of each column
print("After converting the data type of each column")
print(sapply(df, class))
yields below output.
Convert All Dataframe Columns to Numeric in R
Alternatively, you can use the as.numeric()
function together with the apply()
function to convert all columns of the data frame to numeric type. To achieve this, pass the data frame, 2
(which specifies the columns), and the as.numeric()
function to the apply()
function. This will convert the data type of all columns to numeric and return a matrix. Finally, you can use as.data.frame()
to convert this matrix back into a data frame with all columns as numeric.
# Convert all data frame columns to numeric
df1 <- as.data.frame(apply(df, 2, as.numeric))
print("After converting get the datatype of each column:")
sapply(df1, class)
# Output:
# [1] "After converting get the datatype of each column:"
# column1 column2 column3 column4
# "numeric" "numeric" "numeric" "numeric"
Convert Non Numeric character to Numeric in R
If a vector contains both numeric and non-numeric characters and you want to convert it to numeric type using the as.numeric()
function, the numeric characters will be converted to numeric values. For non-numeric characters, as.numeric()
will return NA
and produce a warning message: In eval(ei, envir) : NAs introduced by coercion
.
# Create character vector
char_vector <- c("10", "20", "spark", "40", "50")
print(char_vector)
# Convert character vector to numeric vector
num_vector <- as.numeric(char_vector)
print("After converting character vector into numeric vector")
print(num_vector)
# Output:
# [1] "After converting character vector into numeric vector"
# [1] 10 20 NA 40 50
# Warning message:
# In eval(ei, envir) : NAs introduced by coercion
Conclusion
In this article, I have explained the functionality of the as.numeric()
function in R, demonstrating how it facilitates the conversion of data from character type to numeric. Additionally, I’ve explored its application on various R objects such as vectors and data frames, how it converts them with help of other functions.
Related Articles
- R Convert List to String with Examples
- Convert List to DataFrame in R
- How to Convert List to Vector in R
- How to Convert Vector to List in R