настроить функцию сортировки в R - PullRequest
0 голосов
/ 01 октября 2018

Я хочу отсортировать вектор, содержащий рейтинги,

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"

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Один вариант с ave

ave(r, substr(r, 1, 1), FUN = function(x) sort(x, decreasing = TRUE))
#[1] "AAA" "AA"  "A"   "BBB" "BB"  "B"   "CCC"
0 голосов
/ 01 октября 2018

Вам нужно использовать факторы и создавать уровни следующим образом:

    r<-c("A","AA","AAA","BBB","BB","B","CCC")
    r <- factor(r, levels = c("AAA", "AA","A","BBB","BB","B","CCC"))
    sort(r)
0 голосов
/ 01 октября 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...