【问题标题】:Find most common word in a character string查找字符串中最常见的单词
【发布时间】:2014-12-14 19:46:47
【问题描述】:

我有一个字符串,需要找出字符串中出现频率最高的单词。我已经尝试了我能想到的maxwhich.maxsortorderrank 的每一种变体——但似乎无法正确解决语法。我也尝试了这里找到的所有方法:Calculate frequency of occurrence in an array using R

示例代码:

zzz <- c("jan", "feb", "jan", "mar", "mar", "jan", "feb") #random example data
zzz <- paste(zzz, collapse=" ") #make data look like what I'm working with
zzz
# [1] "jan feb jan mar mar jan feb"

在这个例子中,“jan”出现的频率最高。

非常感谢任何建议!

【问题讨论】:

    标签: r string sorting max


    【解决方案1】:

    这个怎么样:

    Freq <- table(unlist(strsplit(zzz," ")))
    # > Freq
    # feb jan mar 
    # 2   3   2 
    > Freq[which.max(Freq)]
    jan 
      3
    

    如果您只想将实际单词作为输出,

    > names(Freq)[which.max(Freq)]
    [1] "jan"
    

    【讨论】:

    • 完美!谢谢你。 :)
    • 您可能也需要担心关系。在此示例中,表格的第一个元素(如果没有记错,它是按字母顺序排列的)将始终被选中,以防出现平局。
    • 有什么好担心的?它们要么存在,要么不存在。
    【解决方案2】:

    你也可以factor分割向量然后tabulate

    f <- factor(strsplit(zzz, " ")[[1]])
    levels(f)[which.max(tabulate(f))]
    # [1] "jan"
    

    【讨论】:

      猜你喜欢
      • 2014-12-10
      • 1970-01-01
      • 2012-12-08
      • 2011-02-03
      • 2014-05-24
      • 2017-03-30
      • 1970-01-01
      • 2015-11-29
      • 2011-09-27
      相关资源
      最近更新 更多