condition に基づいて簡単なテストを作成したいとしますsetdiff(input, 1:9)
。
どうすれば構築できますか
if isnotempty(setdiff(input, 1:9)) stop ("not valid")
入力があると実行を停止するがc(3, 12)
、入力があると続行するステートメントはc(2,5,7)
? どうもありがとう、バーティ
condition に基づいて簡単なテストを作成したいとしますsetdiff(input, 1:9)
。
どうすれば構築できますか
if isnotempty(setdiff(input, 1:9)) stop ("not valid")
入力があると実行を停止するがc(3, 12)
、入力があると続行するステートメントはc(2,5,7)
? どうもありがとう、バーティ
使用できます?length
:
isEmpty <- function(x) {
return(length(x)==0)
}
input <- c(3, 12);
if (!isEmpty(setdiff(input, 1:9))) {
stop ("not valid")
}
別のオプションがありますidentical(x, numeric(0))
。例を次に示します (基本的には sgibb からすべてを取得し、怠け者なのでキー行を置き換えました):
isEmpty <- function(x) {
return(identical(x, numeric(0)))
}
input <- c(3, 12)
if (!isEmpty(setdiff(input, 1:9))) {
stop ("not valid")
}
これはあなたの件名の質問に答えるものではありませんが、あなたが達成しようとしていることに対してより良いアプローチだと思います:
if(!all(input %in% 1:9)) stop("not valid")
isEmpty 関数が気に入りました。ベクトルまたはリストを解析する場合に備えて、次のことを提案します。
isEmpty <- function(x) {
s<-sapply(x, function(y) length(y)==0, simplify = T)
return(s)
}