文字列のベクトルをテストし、それぞれに数値または記号の要素が含まれているかどうかを判断したい (つまり、文字列が単なるアルファベット文字とスペース以上のものであるかどうかを知りたい)。ここで解決しましたが、より効率的な方法があるかどうか疑問に思っています(R正規表現で)。
x <- c("ff d fdf4f", "fve dvgf", "vfev!", "rcvce rc&")
nchar(gsub("[a-zA-Z]|\\s+", "", x)) > 0
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
grep
代わりに使用してください:
grep("[^a-zA-Z\\s]+", x, value=FALSE)