How to Use pmax & pmin in R (With Examples)


You can use the pmax() and pmin() functions in R to find the parallel maximum and minimum values, respectively, across multiple vectors.

These functions uses the following basic syntax:

pmax(vector1, vector2, vector3, ...)
pmin(vector1, vector2, vector3, ...) 

The following examples show how to use these functions with both vectors and data frames.

Example 1: Use pmax and pmin with Vectors

Suppose we have the following three vectors in R:

#define three vectors
vector1 <- c(2, 2, 3, 4, 5, 6, 9)
vector2 <- c(1, 2, 4, 3, 3, 5, 4)
vector3 <- c(0, 4, 3, 12, 5, 8, 8)

We can use the pmax and pmin functions to find the maximum and minimum values at corresponding elements across all three vectors:

#find max value across vectors
pmax(vector1, vector2, vector3)

[1]  2  4  4 12  5  8  9

#find min value across vectors
pmin(vector1, vector2, vector3)

[1] 0 2 3 3 3 5 4

Here’s how to interpret the output:

  • The max value in the first position across all vectors was 2. The minimum value in the first position across all vectors was 0.
  • The max value in the second position across all vectors was 4. The minimum value in the second position across all vectors was 2.

And so on.

Example 2: Use pmax and pmin with Data Frame Columns

Suppose we have the following data frame in R:

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                 steals=c(24, 22, 36, 33, 30),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 41))

#view data frame
df

  team steals assists rebounds
1    A     24      33       30
2    B     22      28       28
3    C     36      31       24
4    D     33      39       24
5    E     30      34       41

We can use the pmax and pmin functions to find the maximum and minimum values at corresponding elements across all three vectors:

#find max value across steals, assists, and rebounds columns
pmax(df$steals, df$assists, df$rebounds)

[1] 33 28 36 39 41

#find minimum value across steals, assists, and rebounds columns
pmin(df$steals, df$assists, df$rebounds)

[1] 24 22 24 24 30

Here’s how to interpret the output:

  • The max value in the first row across the steals, assists, and rebounds columns was 33 and the minimum value was 24.
  • The max value in the second row across the steals, assists, and rebounds columns was 28 and the minimum value was 22.

And so on.

Note: If you have missing values in any of the vectors, simply use the following syntax to ignore NA’s when calculating the maximum or minimum:

pmax(vector1, vector2, vector3, na.rm=TRUE)
pmin(vector1, vector2, vector3, na.rm=TRUE)

Additional Resources

The following tutorials explain how to perform other common operations in R:

How to Use length() Function in R
How to Use cat() Function in R
How to Use substring() Function in R

Leave a Reply

Your email address will not be published. Required fields are marked *