Open In App

Convert Data Frame Column to Numeric in R

Last Updated : 01 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

R DataFrame is made up of three principal components, the data, rows, and columns. Data frames in R are versatile data structures to matrices where each column can contain different data types. This versatility allows for complex data analysis tasks. Converting columns to numeric type is a common operation in data analysis workflows, enabling mathematical computations and statistical analysis. In this article, we’ll explore various methods to convert data frame columns to numeric type in R Programming Language, along with multiple examples for clarity.

we can convert DataFrame columns to numeric values by using R programming for data analysis.

Methods for Convert Data Frame Column to Numeric in R

  • Convert One Column to a Numeric
  • Convert Multiple Columns to Numeric

Convert One Column to a Numeric

To convert a single column to numeric type, we can utilize the as.numeric() function. Here’s a step-by-step process:

  • First, ensure that the column is in a convertible format. If it’s a factor or character, conversion to numeric requires an intermediate step.
  • Use as.character() to convert the column to character type.
  • Then, apply as.numeric() to convert the character vector to numeric.
  • Finally, verify the conversion using sapply() to check the class of each column.

R




df <- data.frame(x1 = as.factor(c(1, 5, 8, 2)), x2 = c(3, 2, 5, 2), x3 = c(2, 7, 1, 2))
df
sapply(df, class)


Output:

  x1 x2 x3
1 1 3 2
2 5 2 7
3 8 5 1
4 2 2 2
x1 x2 x3
"factor" "numeric" "numeric"

To convert x1 to numeric

R




df$x1 <- as.numeric(as.character(df$x1))
sapply(df, class)


Output:

       x1        x2        x3 
"numeric" "numeric" "numeric"

Convert Multiple Columns to Numeric

Converting multiple columns to numeric simultaneously can be achieved using loops or vectorized operations. Here’s an example using vectorized operations:

  • Specify the columns to be converted by creating a vector of column indices.
  • Use apply() to apply a custom function to each specified column.
  • Within the function, convert each column to character and then to numeric.
  • Verify the conversion using sapply().

R




# Column indices to be converted
i <- c(2, 3) 
df[, i] <- apply(df[, i], 2, function(x) as.numeric(as.character(x)))
                  
sapply(df, class)


Output:

       x1        x2        x3 
"numeric" "numeric" "numeric"

This method introduces the use of the parse_number() function from the readr package to directly parse numeric values from character strings. It offers a convenient alternative to traditional conversion methods, especially when dealing with character columns.

We’ll demonstrate how to convert a character column (x1) to numeric using parse_number(). This function efficiently extracts numeric values from character strings, simplifying the conversion process. The output is verified to ensure successful conversion.

R




# Load the readr package
library(readr)
 
# Example data frame
df <- data.frame(x1 = c("1", "5", "8", "2"),  # Character column
                 x2 = c(3, 2, 5, 2),
                 x3 = c(2, 7, 1, 2))
 
# Display original data frame
print("Original DataFrame:")
print(df)
print(sapply(df, class))
# Convert character column x1 to numeric using parse_number()
df$x1 <- parse_number(df$x1)
 
# Display modified data frame
print("DataFrame after conversion:")
print(df)
 
# Verify the class of each column
print("Column Classes:")
print(sapply(df, class))


Output:

[1] "Original DataFrame:"
x1 x2 x3
1 1 3 2
2 5 2 7
3 8 5 1
4 2 2 2
x1 x2 x3
"character" "numeric" "numeric"
[1] "DataFrame after conversion:"
x1 x2 x3
1 1 3 2
2 5 2 7
3 8 5 1
4 2 2 2
[1] "Column Classes:"
x1 x2 x3
"numeric" "numeric" "numeric"

Conclusion

In conclusion, converting DataFrame columns to numeric values in R is essential for data analysis tasks. By leveraging functions like as.character() and as.numeric(), along with tools such as sapply(), users can efficiently manage data types. This article provides a comprehensive guide for performing these conversions, empowering R programmers in their data analysis endeavors.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads