範囲のうち6と3の倍数、またはどれも含まれていない数値をテストする関数を作成しました。私はそれがしたいよう入力が文字列のときにR関数のエラーが発生する
Multi <- function(x,y) {
z = x:y
for (i in z) {
if (i%%1!=0 | i<0) {
print("Error!")
break
} else if (i%%3==0 & i%%6==0) {
print(paste(i, "is multiple of both 3 and 6"))
} else if (i%%3==0) {
print(paste(i, "is multiple of 3"))
} else {
print(paste(i, "is not multiple"))
}
}
}
ループは動作しますが、if文最初の内、私はまた、文字/文字列が提供されている場合、それは"Error!"
を印刷したいと思います。 Multi("Hello",10)
をしようとしたときに私が得るメッセージは次のとおりです。
Error in x:y : NA/NaN argument In addition: Warning message: In Multi("Hello", 10) : NAs introduced by coercion
私はsuppressWarnings()
機能を試してみましたが、私はそれを動作させることができませんでした。
提案がありますか?
コードを減らすことができますか? – biomiha