在R中,我希望代码查找10位数字中以4或6开头的数字。
这可以获取10位数字:
Select * FROM (SELECT t1.id, t1.name, t2.date
FROM t1
LEFT JOIN t1 ON t1.id = t2.id
ORDER BY t2.date desc) a
GROUP BY a.id,a.name, t2.date
这不能使它们以4或6开头:
grep("^[[:digit:]]{10}$"
示例
grep([46]\"^[[:digit:]]{10}$"
答案 0 :(得分:3)
您可以使用
grep("^[46][0-9]{9}$", x)
^^^^ ^
详细信息
^
-字符串的开头[46]
-4
或6
[0-9]{9}
-九位数字$
-字符串的结尾。答案 1 :(得分:1)
您也可以使用简单的数学,即
x <- c('4982748923', '6165751984', '31094583285')
as.numeric(x) %/% 1000000000 %in% c(4, 6)
#[1] TRUE TRUE FALSE
答案 2 :(得分:1)
我们可以使用grepl
和nchar
grepl("^[4|6]", x) & nchar(x) == 10
#[1] TRUE TRUE FALSE FALSE
使用grepl
查找字符串是否以“ 4”或“ 6”开头,并检查其中的字符数是否等于10。
如果需要这些值,请将其子集
x[grepl("^[4|6]", x) & nchar(x) == 10]
#[1] "4982748923" "6165751984"
数据
x <- c('4982748923', '6165751984', '31094583285', '654')