【问题标题】:Count the number of words without white spaces [duplicate]计算没有空格的单词数[重复]
【发布时间】:2020-07-28 16:06:32
【问题描述】:

我有以下字符串:

str1<-" india hit milestone electricity wind solar"

其中包含的单词数为:

>sapply(strsplit(str1, " "), length)
[1] 7

这不是真的,因为我们在str1 的开头有一个空格。我试图修剪空白,但是:

> stripWhitespace(str1) # by tm package

返回相同的情况:

[1] " india hit milestone electricity wind solar"

为什么?

【问题讨论】:

  • stripWhitespace 在哪里定义?我的第一个想法是 trimws 删除前导(和尾随,如果存在)空格。这将使sapply(strsplit(trimws(str1), " "), length) "6"。
  • stripWhitespace 用于使用 tm 包设置的语料库中的文档,而不是用于字符串。如果您只有一个字符串,请使用上面提到的 trimws。

标签: r string tm


【解决方案1】:

也许你可以试试

lengths(gregexpr("\\b\\w+\\b",str1))

这样

> lengths(gregexpr("\\b\\w+\\b",str1))
[1] 6

【讨论】:

    【解决方案2】:

    你可以只使用基本函数trimws

    sapply(strsplit(trimws(str1), " "), length)
    [1] 6
    

    【讨论】:

      【解决方案3】:

      您可以尝试像这样使用stringr::str_trimstringr::str_split

      length(stringr::str_split(stringr::str_trim(str1), pattern=" ", simplify=T))
      

      【讨论】:

        【解决方案4】:

        我们可以使用str_count

        library(stringr)
        str_count(str1, '\\w+')
        #[1] 6
        

        【讨论】:

          猜你喜欢
          • 2014-04-10
          • 1970-01-01
          • 1970-01-01
          • 2013-09-21
          • 2017-10-22
          • 2023-04-11
          • 1970-01-01
          • 2018-03-04
          • 2014-12-29
          相关资源
          最近更新 更多