# Create Categories Based On Integer & Numeric Range in R (2 Examples)

In this tutorial you’ll learn how to construct categorical variables based on integers and numeric ranges in R programming.

The tutorial contains this information:

Let’s dig in!

## Example 1: Convert Integer into Categorical Data

Example 1 illustrates how to create a categorical vector using an integer (e.g. a person’s age in years) as input data.

Consider the following integer vector in R:

```num1 <- c(1, 4, 3, 7, 1, 4, 3, 3, 7) # Create numeric example data num1 # Print numeric example data #  1 4 3 7 1 4 3 3 7```

As you can see in the RStudio console, our example vector contains some random integer values.

Let’s check the class of our data:

```class(num1) # Class of data #  "numeric"```

The data type of our input data is numeric (the same R code could be applied to the integer class).

Now, we can convert this numeric vector to the factor class (i.e. categorical data) using the as.factor function:

```cat1 <- as.factor(num1) # Convert numeric to factor cat1 # Print categorical data #  1 4 3 7 1 4 3 3 7 # Levels: 1 3 4 7```

Have a look at the previous output of the RStudio console: The values are the same, but the data has been grouped into factor levels.

We can also check the class of our final data object using the class function:

```class(cat1) # Class of data #  "factor"```

It’s a factor!

In this example we have used the actual integer values as categories. However, it is also possible to group a numeric vector into categorical ranges.

You guessed it… That’s what I’m going to show next.

## Example 2: Convert Numerical Ranges into Categorical Data

Example 2 illustrates how to convert continuous numerical ranges into discrete categories defined by intervals. Let’s first create some random example data in R:

```set.seed(6042397) # Set random seed num2 <- rnorm(100) # Create numeric example data head(num2) # Head of numeric example data #  1.2645445 -0.4518619 -0.4574372 0.7558008 -0.4175519 -1.1232298```

The previous output shows the first six values of our example vector. As you can see, we have created a vector consisting of random numeric values.

We can now convert this vector into categorical ranges:

```cat2 <- numeric() # Create empty data object cat2[num2 < - 1] <- 1 # Assign categories based on numeric range cat2[num2 >= - 1 & num2 < 0] <- 2 cat2[num2 >= 0 & num2 < 1] <- 3 cat2[num2 >= 1] <- 4 cat2 <- as.factor(cat2) # Convert numeric to factor head(cat2) # Head of categorical data #  4 2 2 3 2 1 # Levels: 1 2 3 4```

The previous output shows our final result: A categorical factor vector with four different categories (i.e. 1, 2, 3, and 4).

## Video, Further Resources & Summary

I have recently released a video on my YouTube channel, which shows the content of this article. You can find the video below:

Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party. If you accept this notice, your choice will be saved and the page will refresh.

In addition, you might want to have a look at some of the other articles of Statistics Globe.

In summary: In this R tutorial you have learned how to convert numeric and integer data to categorical. Let me know in the comments, if you have any additional questions.

Subscribe to the Statistics Globe Newsletter