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