【问题标题】:How to sort data by using loops? [closed]如何使用循环对数据进行排序? [关闭]
【发布时间】:2020-04-22 00:34:36
【问题描述】:

我想编写一个函数,以升序或降序重新排列向量。我知道我可以使用排序和排序功能,但我想手动完成。

【问题讨论】:

  • 取决于您要使用哪种排序算法en.wikipedia.org/wiki/Sorting_algorithm
  • 是的,这是最短的方法,但是我可以通过使用循环来编写函数吗?
  • 欢迎来到 SO。不幸的是,您的问题并不是真正的问题。你想这样做,但我们不知道为什么,你已经取得了什么成就,甚至为什么你想用 R 而不是另一种语言来做这件事。另外,你看View(sort.int)了吗?
  • @DanChaltiel 嗨,因为我正在尝试自己编写一些已经在 R 中的基本函数。几个月前我才开始学习 R。
  • @elsa 查看我的答案,它提供了自定义排序功能

标签: r algorithm loops sorting vector


【解决方案1】:

如果您想练习编写自己的排序函数,下面是一个应用递归方法的示例:

mysort <- function(v, descending = F) {
  if (length(v)==1) return(v)
  if (descending) return(c(max(v),mysort(v[-which.max(v)],descending = descending))) 
  return(c(min(v),mysort(v[-which.min(v)])))
}

示例

v <- c(1,2,5,4,2,7)
# ascending manner
mysort(v)
# descending manner
mysort(v,descending = T)

这样

> mysort(v)
[1] 1 2 2 4 5 7

> mysort(v,descending = T)
[1] 7 5 4 2 2 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2023-03-08
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多