Skip to main content

如何使用R语言的 min / max 函数

作者 Prajwal CN

运用R语言中的 min 和 max 函数,可以轻松查找最小值和最大值。

R语言中有平均数、中位数、标准差和模式等函数来分别计算数值的平均值、中间值和分散度。但是,你有没有想过能通过一个函数得出一个向量或数据帧中的最小值和最大值?

恭喜你,min / max 函数就能够做到这一点——它们能够分别返回最小值和最大值。

听起来不错吧?让我们一起来看看这两个函数是如何运算的。

从句法开始吧!

min 函数的句法如下:

min(x, na.rm = FALSE)
  • x = 向量或数据帧。
  • na.rm = 删除NA值。如果是False,则返回NA;如果是True,则从向量或数据帧中删除NA。

max 函数的句法如下:

max(x, na.rm = FALSE)
  • x = 向量或数据帧。
  • na.rm = 删除NA值。如果是False,则返回NA;如果是True,则从向量或数据帧中删除NA。

R语言的 max 函数

在本节中,我们将找到向量中的最大值。 为此,我们首先创建一个向量,然后应用 max 函数,该函数随即返回向量中的最大值。

#创建一个向量
vector<-c(45.6,78.8,65.0,78.9,456.7,345.89,87.6,988.3)

#返回向量中的最大值
max(vector)

输出= 988.3

R语言中的 min 函数

在此,我们使用 min 函数找到向量中的最小值。您可以创建一个向量,然后将 min 函数应用于该向量,该向量将返回最小值,如下所示。

#创建一个向量
vector<-c(45.6,78.8,65.0,78.9,456.7,345.89,87.6,988.3)

#返回向量中的最小值
min(vector)

输出 = 45.6

R语言中具有 NA 值的 max 函数

有时在数据分析中,您可能会在数据帧和向量中遇到NA值。此时,您需要绕过NA值以获得所需结果。

如果 max 函数在运算过程中遇到NA值,则不会返回任何值。因此,您必须从向量或数据帧中删除NA值才能获得最大值。

#创建一个具有 NA 值的向量
df<- c(134,555,NA,567,876,543,NA,456)


#因为存在NA值, max 函数不会返回任何值
max(df)

#导致输出结果为 NA ,而非最大值
Output = NA

因此,为了避免遇到NA值,获得最大值,我们使用 na.rm 函数从向量中删除NA值。然后,您就可以看到 max 函数会返回最大值。

#移除 NA 值后的 max 函数被设置为 TRUE
max(df, na.rm = T)

输出= 876

R语言中具有 NA 值的 min 函数

就像我们在上一节中应用max函数一样,这里我们将在具有NA值的向量中找到最小值。

#创建一个具有 NA 值的向量
df<- c(134,555,NA,567,876,543,NA,456)

#返回 NA 值而非最小值
min(df)

输出= NA

为了解决这一情况,我们使用 na.rm 函数从向量中删除NA值。然后,您就可以看到 min 函数返回最小值。

创建一个具有 NA 值的向量
df<- c(134,555,NA,567,876,543,NA,456)

#移除 NA 值,返回向量中的最小值
min(df, na.rm = T)

输出= 134

字符向量中的 min / max 函数

到现在为止,我们已经掌握了如何查找数值的最小值和最大值。但是实际上,您也有办法查找字符向量的最小值和最大值。是的,您没听错!

让我们看看具体的方法吧!

对于字符向量,min 和 max 函数将考虑字母表顺序,并相应地返回最小值和最大值,如下所示。

#用几个名称创建一个字符向量
character_vector<- c('John','Angelina','Smuts','Garena','Lucifer')

#返回最大值
max(character_vector)

输出= “Smurts(黑穗病)”

同样,我们也可以使用 min 函数在字符向量中找到最小值,如下所示。

#用几个名称创建一个字符向量
character_vector<- c('John','Angelina','Smuts','Garena','Lucifer')

#返回向量中的最小值
min(character_vector)

输出= “Angelina(天使)”

数据帧中的 min / max 函数

让我们导入数据帧来查找它的最小值和最大值。数据集中的最小值和最大值可以很好地反映数据的分布情况。

以下是R studio中的空气质量数据集。 请注意,数据集中包含NA值。了解使用 na.rm 函数删除NA值的相关知识后,让我们在 臭氧(Ozone) 值中找到最小值和最大值。

> datasets::airquality
Ozone Solar.R Wind Temp Month Day
1 41 190 7.1 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
7 23 299 8.6 65 5 7
8 19 99 13.8 59 5 8
9 8 19 20.1 61 5 9
min(airquality$Ozone, na.rm=T)

输出=1

max(airquality$Ozone, na.rm = T)

输出= 168

让我们在空气质量数据集中找到温度(Temp)值的最小值和最大值。

min(airquality$Temp, na.rm = T)

输出= 56

max(airquality$Temp, na.rm = T)

输出= 97

结语

在本教程中,我们关注了查找向量、数据帧和字符向量中的最小值和最大值。

min / max 函数可用于数值向量和字符向量。您也可以使用 na.rm 函数删除NA值,以获得更好的准确性,并得到所需的结果。

这就是本篇教程的所有内容,学习愉快!