ITPub博客

首页 > > > tidyfst中按照行排序:从此告别desc

tidyfst中按照行排序:从此告别desc

作者:浪花小雨滴 时间:2020-03-17 19:16:30 0 删除 编辑

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。


今天来测试一下tidyfst的排序函数arrange_dt(模板参考了R语言统计与绘图:数据处理dplyr—行排序),因为比较简单,只突出一个知识点:tidyfst里面从来不支持desc函数,dplyr中的desc函数本质是返回任何向量的负值。所以,在tidyfst中,请直接使用负号(-)来完成降序操作。tidyfst的哲学还是KIS(Keep It Simple),能少一个函数绝对不增加。

 library(tidyfst)
  
  x1 <- rep(c(1,2), times = 4)  # 生成重复c(1,2) 4次的向量
  x2 <- rnorm(8, mean = 2, sd = 2)  # 生成10个均值为2,标准差为2的向量
  x3 <- c(1,6,8,4,NA,6,7,NA)
  mydata <- data.frame(x1, x2, x3)
  mydata  # 生成数据框
  
  # 1 升序排列
  arrange_dt(mydata, x1)   # x1按升序排列
  arrange_dt(mydata, x1, x2)  # 先按x1升序排列,再按x2升序排列
  
  # 2 降序排列
  arrange_dt(mydata, -x1)  # x1按降序排列
  arrange_dt(mydata, -x1, -x2)  # 先按x1降序排列,再按x2降序排列
  arrange_dt(mydata, -x1, x2)  # 先按x1降序排列,再按x2升序排列
  
  # 3 缺失值排序
  arrange_dt(mydata, x3)
  arrange_dt(mydata, -x3)
  # 与使用sort()进行基本排序不同,不管使用升序还是降序,缺失值总是排在最后面。
  
  # 那么怎么把缺失值排前面?
  arrange_dt(mydata, -is.na(x3), x3)

全部测试成功。

原文作者:;如有侵权,请联系管理员删除。

下一篇: TiDB V4.0 Roadmap
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39945