Range in R returns a vector that contains the minimum and maximum values of the given argument - known in statistics as a range. You can think of range as an interval between the lowest and the highest value within the vector. A vector can be anything, from a list of numbers to a dataframe column - R really doesn’t care.
Actually, a range is a difference between the maximum and minimum values in a vector, but calculating the range in R reports only the interval extremes. You can subtract one from another to get the actual range.
Today you’ll learn how the
range() function in R works with a ton of practical examples. You’ll work with regular and character vectors, dataframes, and dataframe columns, and you’ll also see how to handle missing and infinite values.
Range in R - Definition and Usage
You want to learn how to find values within a range in R? You’re at the right place. In this section, we’ll go over the syntax and return values which will serve as the basis for hands-on examples later.
range(x, na.rm = FALSE)
x- A character or a numeric vector.
na.rm- An optional parameter that specifies whether NA values should be removed before calculating the range.
range() function in R returns either a double or a character, depending on whether a numeric or character vector was passed as an argument.
Range in R - Examples
We’ll go over six examples in this section and cover the usage from basic numeric vectors to entire dataframes.
How to find the minimum and maximum value with Range in R
The following code shows how to calculate the range of a numeric vector:
arr <- c(-10, -15, 5, 19, 27, 0) range(arr)
Makes sense as 27 is the highest value while -15 is the smallest.
Using Range function on a character vector
You won’t always work with numerical data. You can calculate the range on strings, and the function will return the first and last values sorted alphabetically:
arr_char <- c("Bob", "Mike", "Kelly", "Sue") range(arr_char)
Find the Range of a vector with missing (NA) values
Real-world data is often messy and full of missing values. They tend to mess up your calculations if not handled properly. Here’s an example:
arr <- c(-10, -15, NA, 19, 27, 0) range(arr)
na.rm = TRUE to avoid this issue:
range(arr, na.rm = TRUE)
Find the Range of a vector with infinite (Inf) values
Calculation errors can sometimes result in
Inf values, either positive or negative. They mess up the range calculation, as they’re either the smallest or largest value of a vector:
arr <- c(-10, -15, Inf, 19, 27, 0) range(arr)
finite = TRUE to exclude
Inf from the range calculation:
range(arr, finite = TRUE)
Using Range function on a DataFrame column
Let’s store the Iris dataset into a variable
df <- iris head(iris)
You can calculate the range of a specific dataframe column this way:
Using Range function on the entire DataFrame
But what if you need the range of the entire dataset? Well, you can only calculate it for numerical columns on this dataset:
df_numeric <- df[c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')] range(df_numeric)
This doesn’t tell you much - you don’t know in which columns the minimum and maximum values are. Use
sapply() function to get the range of individual columns:
sapply(df_numeric, function(df_numeric) range(df_numeric))
Today you’ve learned how the range in R works through a ton of practical examples. It’s a simple function understand, but definitely required to have under your toolbelt. You’re now ready to use it in your data analysis projects, as there are no data types or use cases you can’t handle.
Stay tuned for the follow-up articles, as we’ll explore other useful built-in R functions.