R程序查找给定向量中的第二高值


2023年2月8日, Learn eTutorial
2431

如何找到第二高值

为了在R中找到第二高值,我们将向量按升序排序,然后我们可以选择排在已排序向量倒数第二个位置的第二高值。

为此,我们使用`sort()`函数。`sort()`是R中的一个内置函数,它有助于按升序和降序对向量进行排序。默认情况下,它是按升序排列的,要按降序排列,我们需要设置**decreasing=TRUE**。语法如下:

sort(x, decreasing, na.last)

其中,

  • x 是要排序的向量
  • decreasing: 用于降序排序
  • na.last 表示将NA放在末尾。

在R编程中,我们可以部分排序如下:

  • sort(x, partial=m)  
    x is a vector
    partial a vector of indices
    
    

这意味着将向量“**x**”进行排列,使其前“**m**”个位置包含“**m**”个最小元素,但不一定按升序排列。在这里,我们将使用部分排序,通过在`sort()`函数中使用`partial=`**length-1**来查找向量**x**的第二高值。

如何在R程序中找到向量的第二高值

在这个R程序中,我们将值传递给内置函数。首先,我们找到向量的长度并将其存储在变量**len**中,并将向量值赋给变量**vect_values**。最后,调用部分排序函数`sort(vect_values, partial = len-1)`来查找第二大元素,并打印排序后向量的**[len-1]th**元素。

算法

步骤1:将向量值赋给变量vect_values

步骤2:首先打印原始值

步骤3:使用长度函数length(vect_values)将向量的长度赋给len

步骤4:调用sort函数,如sort(vect_values, partial = len-1)

步骤5:打印sort()函数的[len-1]个元素

R 源代码

                                          vect_values = c(20, 32, 30, 10, 40, 25, 30, 27)
print("Original Vectors:")
print(vect_values)
print("Find second highest value in a given vector:")
len = length(vect_values)
print(sort(vect_values, partial = len-1)[len-1])

                                      

输出

[1] "Original Vectors:"
[1] 20, 32, 30, 10, 40, 25, 30, 27
[1] "Find second highest value in a given vector:"
[1] 32