【问题标题】:Sorting and Ordering in RR中的排序和排序
【发布时间】:2015-07-14 15:35:04
【问题描述】:

我目前正在学习入门课程,并且在解决这个特定问题时遇到了一些困难:

  1. 创建一个函数,该函数接受一个数字向量 V.Size 和单个数字 N 作为输入,并输出一个大小为 N 的列表对象,其中每个列表成员都是一个包含 V.Size 元素的向量,使得最大值V.Size 在第一个列表项的向量中,V.Size 中的第二大值在第二个列表项的向量中,依此类推。 V.Size 的 (N+1) 有序值应该在第一个列表的向量,V.Size 的 (N+2) 有序值应该在列表的第二个向量中,依此类推。

现在,这就是我迄今为止所做的,我正在尝试制作一个示例代码:

V.Size <- c(5,4,2,3,1)
n <- 5
Function <- c(V.Size, n)
Function
[1] 5 4 2 3 1 5

sort(Function, decreasing=TRUE)
[1] 5 5 4 3 2 1

我遇到的问题是 (N+1)、(N+2) 及其排序。

【问题讨论】:

    标签: r function sorting vector


    【解决方案1】:

    解决这个问题的第一步是为排序的V.size 中的每个元素创建一个列表位置向量。这基本上是总长度V.size 的向量 (1, 2, ..., N, 1, 2, ..., N, ...)。您可以通过以下方式获得:

    V.Size <- c(5,4,2,3,1)
    n <- 2
    rep(1:n, length.out=length(V.Size))
    # [1] 1 2 1 2 1
    

    现在您可以使用split 函数根据这些分配创建一个列表:

    split(sort(V.Size, decreasing=TRUE), rep(1:n, length.out=length(V.Size)))
    # $`1`
    # [1] 5 3 1
    # 
    # $`2`
    # [1] 4 2
    

    【讨论】:

      猜你喜欢
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多