如何从r中的文本中提取信息并创建新列?

时间:2018-04-21 18:16:31

标签: r string extract

我的数据中有一栏包含有关产品的信息:

"技术细节制造商建议年龄:14岁及以上制造商参考176-1308 Scale1 :: 160 Track Width / GaugeNo附加信息...."。

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

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

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

2 个答案:

答案 0 :(得分: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+):捕获一个或多个数字

答案 1 :(得分:0)

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

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 <- as.integer(sub(etc))