我想测试一个字符串向量,并确定每个字符串是否包含数字或符号的元素(即我想知道字符串是否只是字母和空格)。我在这里已经解决了,但我想知道是否有一种更有效的方式(在R正则表达式中)。
x <- c("ff d fdf4f", "fve dvgf", "vfev!", "rcvce rc&")
nchar(gsub("[a-zA-Z]|\\s+", "", x)) > 0
答案 0 :(得分:3)
grepl
以及寻找不符合您想要的字符似乎可以正常工作
grepl("[^a-zA-Z[:space:]]", x)
这提供与原始代码相同的输出
> x <- c("ff d fdf4f", "fve dvgf", "vfev!", "rcvce rc&")
> nchar(gsub("[a-zA-Z]|\\s+", "", x)) > 0
[1] TRUE FALSE TRUE TRUE
> grepl("[^a-zA-Z[:space:]]", x)
[1] TRUE FALSE TRUE TRUE
答案 1 :(得分:2)
改为使用grep
:
grep("[^a-zA-Z\\s]+", x, value=FALSE)