【问题标题】:How to extract information from text in r and create new column?如何从 r 中的文本中提取信息并创建新列?
【发布时间】:2018-04-21 18:16:31
【问题描述】:

我的数据中有一个包含产品信息的列:

“技术细节制造商推荐年龄:14 岁及以上制造商参考 176-1308 Scale1::160 Track Width/GaugeNo Additional Information ....”。

如何仅从该文本中提取年龄并将其放在单独的列中?

预期的输出将是"age:"14 之后的数字。

可能我需要使用包stringr 并尝试功能str_extract,但不清楚如何实现这一点。

【问题讨论】:

    标签: r string extract


    【解决方案1】:

    另一种解决方案:

    s <- "Technical Details Manufacturer recommended age:14 years and up Manufacturer reference176-1308 Scale1::160 Track Width/GaugeNo Additional Information ...."
    
    sub(".*age:(\\d+).*", "\\1", s)
    #[1] "14"
    
    • (\\d+):捕获一位或多位数字

    【讨论】:

      【解决方案2】:

      也许有更简单的正则表达式,但这个似乎有效。

      s <- "Technical Details Manufacturer recommended age:14 years and up Manufacturer reference176-1308 Scale1::160 Track Width/GaugeNo Additional Information ...."
      s
      
      sub(".*age[^[:digit:]]*([[:digit:]]*).*", "\\1", s)
      #[1] "14"
      

      如果要输出为数字,

      num <- sub(".*age[^[:digit:]]*([[:digit:]]*).*", "\\1", s)
      num <- as.integer(num)
      num
      #[1] 14
      

      您可以一步完成上述操作,num &lt;- as.integer(sub(etc))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-21
        • 1970-01-01
        • 2022-11-24
        • 2011-09-14
        • 2017-06-10
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        相关资源
        最近更新 更多