Как найти первое по частоте, второе по частоте, ..., последнее по частоте в тексте? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь найти первое по частоте, второе по частоте, ..., последнее по частоте слово / категорию в следующем тексте cat.

library(stringr)
cat <- c("AA","AA","AA","Ee","Dd","Ee","Bb","Cc","Cc","Cc")

ВЫХОД, который мне нужен:

most1 AAA Cc
most2 Ee
most3 Bb Dd

Можно ли мне помочь в этом отношении? Tnx!

1 Ответ

1 голос
/ 26 мая 2020

Вы можете использовать table например:

sort(table(cat), TRUE)
#cat
#AA Cc Ee Bb Dd 
# 3  3  2  1  1 

И как вектор символов:

x <- table(cat)
x <- rev(do.call(rbind, lapply(split(names(x), x), paste,collapse = " ")))
cbind(paste0("most", seq(x)), x)
#             x      
#[1,] "most1" "AA Cc"
#[2,] "most2" "Ee"   
#[3,] "most3" "Bb Dd"

Вариант:

x <- table(cat)
x <- do.call(rbind, rev(lapply(split(names(x), x), list)))
as.data.frame(cbind(paste0("most", seq(x)), x))
#     V1     V2
#3 most1 AA, Cc
#2 most2     Ee
#1 most3 Bb, Dd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...