• R语言中同时对数据框的多列进行排序


    1、测试数据

    > a <- c(3,2,2,2,2,2,9,1,4)
    > b <- c(7,8,4,4,4,6,5,2,3)
    > c <- c(3,5,7,4,3,2,1,8,6)
    > d <- data.frame(a, b, c)
    > d
      a b c
    1 3 7 3
    2 2 8 5
    3 2 4 7
    4 2 4 4
    5 2 4 3
    6 2 6 2
    7 9 5 1
    8 1 2 8
    9 4 3 6

    2、按照a列进行排序

    > d[order(d$a),]
      a b c
    8 1 2 8
    2 2 8 5
    3 2 4 7
    4 2 4 4
    5 2 4 3
    6 2 6 2
    1 3 7 3
    9 4 3 6
    7 9 5 1

    2、对a列进行降序排列

    > d[order(d$a,decreasing = T),]
      a b c
    7 9 5 1
    9 4 3 6
    1 3 7 3
    2 2 8 5
    3 2 4 7
    4 2 4 4
    5 2 4 3
    6 2 6 2
    8 1 2 8

    3、先按照a列进行排序,再按照b列进行排序

    > order(d$a)
    [1] 8 2 3 4 5 6 1 9 7
    > order(d$a,d$b)
    [1] 8 3 4 5 6 2 1 9 7
    > d[order(d$a,d$b),]
      a b c
    8 1 2 8
    3 2 4 7
    4 2 4 4
    5 2 4 3
    6 2 6 2
    2 2 8 5
    1 3 7 3
    9 4 3 6
    7 9 5 1

    4、对a、b列同时进行降序排列

    > d[order(-d$a,-d$b),]
      a b c
    7 9 5 1
    9 4 3 6
    1 3 7 3
    2 2 8 5
    6 2 6 2
    3 2 4 7
    4 2 4 4
    5 2 4 3
    8 1 2 8

    5、对a升序,b降序惊醒排列

    > d[order(d$a,-d$b),]
      a b c
    8 1 2 8
    2 2 8 5
    6 2 6 2
    3 2 4 7
    4 2 4 4
    5 2 4 3
    1 3 7 3
    9 4 3 6
    7 9 5 1

    6、一次按照a、b、c列进行排序

    > d[order(d$a,d$b,d$c),]
      a b c
    8 1 2 8
    5 2 4 3
    4 2 4 4
    3 2 4 7
    6 2 6 2
    2 2 8 5
    1 3 7 3
    9 4 3 6
    7 9 5 1

    7、对a、b、降序 c升序排列

    > d[order(-d$a,-d$b,d$c),]
      a b c
    7 9 5 1
    9 4 3 6
    1 3 7 3
    2 2 8 5
    6 2 6 2
    5 2 4 3
    4 2 4 4
    3 2 4 7
    8 1 2 8
  • 相关阅读:
    不容易系列之(3)—— LELE的RPG难题(递推)
    亲和数(因子和)
    爬虫正式学习day2
    爬虫小练习:堆糖图片抓取--爬虫正式学习day1
    js笔记--高阶函数array的各种函数
    js笔记--高阶函数sort()
    js笔记--高阶函数filter()
    js笔记--高阶函数map() reduce()
    js笔记--方法
    js笔记--变量部分
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14670323.html
Copyright © 2020-2023  润新知