首页 > > > tidyfst中按照行排序:从此告别desc
作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(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)
全部测试成功。
原文作者:;如有侵权,请联系管理员删除。