R:筛选字符向量中包含数字/数字字符串的行

R:筛选字符向量中包含数字/数字字符串的行,r,R,我正在寻找一种方法来过滤R中的字符向量。我只想保留那些包含任何数字或数字的行。应过滤掉不包含数字的行。在我完成过滤之后,我想提取这些数字。我该怎么做呢?我们可以使用匹配一个或多个非数字(\\D+)的grep,从字符串的开始(^)到结束($),使用value=TRUE和invert=TRUE来获取与模式不匹配的元素 grep("^\\D+$", v1, value = TRUE, invert = TRUE) #[1] "az1" "Abc2" "123" 或使用 grep("\\d+",

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

我们可以使用匹配一个或多个非数字(
\\D+
)的
grep
,从字符串的开始(
^
)到结束(
$
),使用
value=TRUE
invert=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我们可以使用从字符串的开始(
^
)到结束(
$
)匹配一个或多个非数字(
\\D+
)的
grep
),使用
value=TRUE
invert=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发帖前,我只是想确认一下。假设你有像“123”这样的字符串,你会把它过滤掉吗?不,我想把它留下。不管有多少个数字,我只想过滤掉不包含任何数字的行。在发布之前,我只想确认一下。假设你有像“123”这样的字符串,你会把它过滤掉吗?不,我想把它留下。无论有多少个数字,我只想过滤掉不包含任何数字的行。