R:过滤字符向量中包含带数字/数字的字符串的行

时间:2017-11-02 08:30:13

标签: r

我正在寻找一种在R中过滤字符向量的方法。我只想要保留那些包含任何数字或数字的行。应该过滤掉不包含数字的行。在完成过滤后,我想提取这些数字。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

我们可以使用grep匹配一个或多个非数字(\\D+)从开头(^)到结尾($)的字符串,使用value = TRUEinvert = TRUE获取与模式

不匹配的元素
grep("^\\D+$", v1, value = TRUE, invert = TRUE)
#[1] "az1"  "Abc2" "123" 

或使用

grep("\\d+", v1, value = TRUE) 
#[1] "az1"  "Abc2" "123" 

假设我们需要过滤掉只有数字

的情况
grep("([A-Za-z].*[0-9])|[0-9].*[A-Za-z].*[0-9]", v1, value = TRUE)
#[1] "az1"  "Abc2" 

数据

v1 <- c("az1", "AB", "Abc2", "123")