文字列に数字のみ、または文字のみが含まれているかどうかを確認します (R) 質問する

文字列に数字のみ、または文字のみが含まれているかどうかを確認します (R) 質問する

次の 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

おすすめ記事