R 如何在文本中找到第一个最频繁、第二个最频繁、最后一个最频繁?

R 如何在文本中找到第一个最频繁、第二个最频繁、最后一个最频繁?,r,text,stringr,R,Text,Stringr,我试图在下面的文本cat中找到第一个最常用的词,第二个最常用的词,…,最后一个最常用的词/类别 library(stringr) cat <- c("AA","AA","AA","Ee","Dd","Ee","Bb","Cc","Cc","Cc") 在这方面有人能帮我吗?Tnx 您可以使用表格如: sort(table(cat), TRUE) #cat #AA Cc Ee Bb Dd # 3 3 2 1 1 作为一个字符向量: x <- table(cat) x &l

我试图在下面的文本
cat
中找到第一个最常用的词,第二个最常用的词,…,最后一个最常用的词/类别

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

在这方面有人能帮我吗?Tnx

您可以使用
表格
如:

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这是可能的。但我需要输出中指定的格式。我能再问你一件事吗?我想考虑<代码> MOST1 ,<代码> MOST2,<代码> MOST3作为我实际数据帧中的变量名。实际上,这些变量的对应值分别是
aacc
Ee
、和
bbdd
。我该怎么做呢?可能改成
x,它给我的输出与之前的结果基本不同。是的,清楚。它给出了一个
列表
,其中保存了每个most的
cat
变量。因此类似于
split(name(table(cat)),table(cat))
?它在这个意义上起作用。但是,我们如何知道哪一类是最常见的,第二常见的….?哪一种格式?
split
的输出是一个列表。您想要什么格式?请先对列表进行排序。类似于
split(名称(sort(table(cat),discreating=TRUE)),sort(table(cat)))
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