从r中的字符串中提取数字 [英] Extract a number from a string in r

查看:796
本文介绍了从r中的字符串中提取数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,如何从文本中提取两个破折号之间的数字?

Hello how can I extract a number that is between two dashes from a text?

这是一个示例数据集:

text.var <- c("abd-GEN-eft-na-M-D-BINED-10-XX1","abd-GEN-eft-na-M-D-BINED-2-XX2","abd-GEN-eft-na-M-D-BINED-3-XX1")
id <- c(1,2,3)

data <- data.frame("id"=id,"text"=text.var)

> data
  id                            text
1  1 abd-DEF-eft-na-M-D-BINED-10-XX1
2  2  abd-DEF-eft-na-M-D-BINED-2-XX2
3  3  abd-DEF-eft-na-M-D-BINED-3-XX1

我想提取-"之间的数字.我期望的结果是:

I would like to extract the number between "-"s. My desired outcome would be:

> data
  id                            text    number
1  1 abd-DEF-eft-na-M-D-BINED-10-XX1      10
2  2  abd-DEF-eft-na-M-D-BINED-2-XX2       2
3  3  abd-DEF-eft-na-M-D-BINED-3-XX1       3

任何人都可以给些提示吗?

Can anyone give some hint?

谢谢

推荐答案

您可以使用字符串"包中的str_extract函数:

You can use the str_extract function from the "stringr" package:

library(stringr)
str_extract(text.var, "(?<=-)[0-9]+(?=-)")

(?< =)和(?=)是字符串向后看和向前看的选项.

The (?<= ) and (?= ) are the string look behind and look ahead options.

这篇关于从r中的字符串中提取数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆