簡體   English   中英

R:過濾字符向量中包含數字/數字字符串的行

[英]R: filter for rows in a character vector that contain strings with numbers/digits

我正在尋找一種過濾R中字符向量的方法。我只想保留那些包含任何數字或數字的行。 不包含數字的行應被過濾掉。 完成過濾后,我想提取這些數字。 我該怎么辦?

我們可以使用從字符串的開頭( ^ )到結尾( $ )匹配一個或多個非數字( \\\\D+ )的grep ,使用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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM