次の 3 つの文字列があります。
letters <- "abc"
numbers <- "123"
mix <- "b1dd"
これらの文字列のどれに文字のみ、または数字のみが含まれているかを確認するにはどうすればよいですか (R の場合)?
letters
文字のみのチェックではTRUEのみである必要があります
numbers
数値のみのチェックではTRUEのみである必要があります
mix
あらゆる状況においてFALSEであるべきである
私はこれまでいくつかのアプローチを試してきましたが、どれも私にとってはうまくいきませんでした :(
例えば、
grepl("[A-Za-z]", letters)
それは にはうまく機能しますletters
が、 にも機能するためmix
、私は望んでいません。
前もって感謝します。
ベストアンサー1
# Check that it doesn't match any non-letter
letters_only <- function(x) !grepl("[^A-Za-z]", x)
# Check that it doesn't match any non-number
numbers_only <- function(x) !grepl("\\D", x)
letters <- "abc"
numbers <- "123"
mix <- "b1dd"
letters_only(letters)
## [1] TRUE
letters_only(numbers)
## [1] FALSE
letters_only(mix)
## [1] FALSE
numbers_only(letters)
## [1] FALSE
numbers_only(numbers)
## [1] TRUE
numbers_only(mix)
## [1] FALSE