【问题标题】:Identify if character string contains any numbers?识别字符串是否包含任何数字?
【发布时间】:2020-04-10 13:53:10
【问题描述】:

我一直试图用 5 分钟的时间来表述这个标题,以避免它成为一个类似措辞的问题。不走运,如果已经讨论过,请道歉。我找不到关于这个特定主题的任何其他主题。

简单地说,我想确定类字符串中是否存在数字。如果为 true,则应用更多功能。

这是一个狡猾的尝试。

x <- "900 years old"

if(str_detect(x, ">=0")) {

print("contains numbers")
}

很明显,问题在于我试图在字符串中使用关系运算符。考虑到它属于这个类,我如何识别数字字符?

【问题讨论】:

  • 这是另一个相关问题:stackoverflow.com/questions/12727664/…
  • 好的。我不打算提取数字,只是布尔字符串
  • 如果您只想测试一位或多位数字,可能就像str_detect(x, "[0-9]") 一样简单。
  • 是的,很好用。干杯

标签: r


【解决方案1】:

[0-9] 是数字 0 到 9 的正则表达式模式。您还可以使用特殊模式 \d[:digit:](用于数字)。在 R 中,您必须为特殊模式添加额外的转义。所有这些都应该起作用:

str_detect(x, "[0-9]")
str_detect(x, "\\d")
str_detect(x, "[[:digit:]]")

【讨论】:

    【解决方案2】:

    使用base R,我们可以使用grepl

    grepl('[0-9]', x)
    

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 2013-03-15
      • 2020-02-19
      • 1970-01-01
      • 2021-02-09
      • 2010-10-28
      • 2015-09-08
      • 2012-02-18
      相关资源
      最近更新 更多