我的数据中有一栏包含有关产品的信息:
"技术细节制造商建议年龄:14岁及以上制造商参考176-1308 Scale1 :: 160 Track Width / GaugeNo附加信息...."。
如何从该文本中仅提取年龄并将其放在单独的列中?
预期输出将是"age:"
,14
之后的数字。
我可能需要使用包stringr
并尝试使用函数str_extract
,但不清楚如何实现这一点。
答案 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))
。