2

おそらく非常に基本的な質問ですが、解決策を簡単に見つけることができないことに悩まされています...だから、賢明な人の知恵に来るべきだと思いました...

文字列が単なる数字ではなく純粋な数字であるかどうかに応じて、TRUEまたはFALSEを返すことができるようにしたいと思います...私が得た最も近いものは

grepl("[0-9]","99393")
grepl("[0-9]","blah")

ただし、以下は FALSE である必要がある場合に TRUE として返されるため、これは機能しません。

grepl("[0-9]","993T3")

いつものように、助けていただければ幸いです!

編集

ジョランが指摘したように、文字列には整数と文字のみが含まれることに注意することが重要です。つまり、数値の小数点やコンマは含まれません...

4

3 に答える 3

9

正規表現全体を指定し、文字列の先頭 (^) と末尾 ($) を指定する必要があります。例えば ​​:

> grepl("^[[:digit:]]+$","993T3")
[1] FALSE

正規表現について詳しく知りたい場合は、http://en.wikibooks.org/wiki/R_Programming/Text_Processing#Regular_Expressionsをご覧ください。

于 2013-06-12T16:14:11.203 に答える
7

整数または数値のいずれかに強制するための堅牢な内部メソッドを使用しないのはなぜですか?

NA出来ない場合は返却します。is.na論理的な結果が必要な場合に使用します。

is.na( as.integer( "993T3" ) )
# [1] TRUE

is.na( as.integer( "99393" ) )
# [1] FALSE

浮動小数点数を扱っている場合は、as.numericそれ以外の場合は、以下を使用して数値の浮動小数点部分を切り捨てることに注意してください。as.integer

于 2013-06-12T16:12:09.237 に答える