首页 > 解决方案 > 在R中查找字符串中重复次数最多的字符

问题描述

我有一个名为“apple”的字符串。我想运行一个测试,看看哪个字符在字符串中出现次数最多,即“p”。

我最初做的是使用str_extract_all("apple"),并将列表变成一个小标题,使用group_by()summarise()返回出现次数最多的字符。

我想问一下是否有更简单的方法来完成这项任务?就像可能在将其提取到列表“a”“p”“p”“l”“e”之后,我可以立即运行一个函数来检测字符?是否有任何软件包stringr可以完成这项工作?

标签: r

解决方案


使用基数 R,我们可以分离每个字符并使用table并返回具有最大频率的字符来计算它们的出现。

most_repeated_character <- function(x) {
  tab <- table(strsplit(x, '')[[1]])
  names(tab)[tab == max(tab)]
}

most_repeated_character('apple')
#[1] "p"
most_repeated_character('potato')
#[1] "o" "t"

推荐阅读