【问题标题】:Extract number from format string in R从R中的格式字符串中提取数字
【发布时间】:2015-04-14 06:54:16
【问题描述】:

假设我有一堆字符串,格式为:#%d-%d-%d

例如,

#50-69-1
#49-69-2
...

如何在没有暴力破解的情况下通过循环提取每个字符串的第一个数字?

对于上面的例子我想得到:

50
49
...

【问题讨论】:

  • 字符串中有# 还是只是一个注释字符?
  • @akrun,我在字符串里有它

标签: r string


【解决方案1】:

试试

sub('^#(\\d+)-.*', '\\1', str1)
#[1] "50" "49"

数据

str1 <- c('#50-69-1', '#49-69-2')

【讨论】:

    【解决方案2】:

    你可以使用stri_extract函数。

    > library(stringi)
    > x <- "#50-69-1"
    > stri_extract(x, regex="\\d+")
    [1] "50"
    > regmatches(x, regexpr("\\d+", x))
    [1] "50"
    

    > gsub("^\\D*|-.*", "", "#49-69-1")
    [1] "49"
    > gsub("^#|-.*", "", "#49-69-1")
    [1] "49"
    

    【讨论】:

      【解决方案3】:
      x <- c("50-69-1","49-69-2")
      

      你可以使用

      substring(x,1,2)
      > [1] "50" "49"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-13
        • 1970-01-01
        • 2017-02-17
        相关资源
        最近更新 更多