【问题标题】:Finding the most repeated character in a string in R在R中查找字符串中重复次数最多的字符
【发布时间】:2020-04-22 05:21:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: r


    【解决方案1】:

    使用基数 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"
    

    【讨论】:

      【解决方案2】:

      这是dplyr/stringr 解决方案。

      library(dplyr)
      library(stringr)
      
      x <- "apple"
      
      x %>% 
        str_split("") %>% 
        table() %>% 
        as.data.frame() %>% 
        filter(Freq == max(Freq))
      #  . Freq
      #1 p    2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多