繁体   English   中英

在R中自定义排序功能

[英]customize the sort function in R

我想对包含评分的向量进行排序,

r<-c("A","AA","AAA","BBB","BB","B","CCC")

但是,通过应用sort

> sort(r)
[1] "A"   "AA"  "AAA" "B"   "BB"  "BBB" "CCC"

有什么方法可以使我得到以下信息

"AAA"   "AA"  "A" "BBB"   "BB"  "B" "CCC"

您需要使用因素并按如下所示创建级别:

    r<-c("A","AA","AAA","BBB","BB","B","CCC")
    r <- factor(r, levels = c("AAA", "AA","A","BBB","BB","B","CCC"))
    sort(r)
r <- c("A","AA","AAA","BBB","BB","B","CCC") 
r <- factor(r, levels = c("AAA","AA","A","BBB", "BB", "B", "CCC"))


sort(r)
# [1] AAA AA  A   BBB BB  B   CCC

ave一种选择

ave(r, substr(r, 1, 1), FUN = function(x) sort(x, decreasing = TRUE))
#[1] "AAA" "AA"  "A"   "BBB" "BB"  "B"   "CCC"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM