2017-11-02 4 views
1

私は、変数のセットを持って、私は値のテストセットを持ってx, y, z, temp, p, k.... を言うが、私は変数の私のセットは、私が例として挙げられている値を持っているかどうかをテストしたい変数のリストに特定の値があるかどうかをチェックする方法は?

1, TRUE, "kuku", -1, 0.5, "high"... 

を言います。 xy値はc(3,4)にある場合

x <- 3 
y <- 4 

チェック:

は私が単純な例をお見せしましょう。

私が試したのはx & y %in% c(3,4)ですが、必要なことはしません。 私は何を使うべきですか? 私はスマートな1ラインの解決策またはトリックを探しています、助言してください。 allcを使用して

答えて

2

、何をしたいあなたを与える必要があります。

all(c(x, y) %in% c(3, 4)) 
#[1] TRUE 
+0

を使用し、チェックするには、私が間違っている場合、私はベクトルに私がいるかどうかを確認するたびにすべての私の変数をラップする必要が私を修正します彼らは彼らのデフォルト値を持っていますか? –

+1

原子ベクトルまたはリストのいずれかがうまくいくとすれば、それはあなたが意味することです。いずれにしても、(地球環境上に複数の変数を持つのではなく)リスト/原子ベクトルを使った作業がRで好まれます。 – LyzandeR

1

は、別のリスト内のリストとあなたのテスト値であなたの変数を入れて、そして%in%は残りの世話をしてみましょう:

x = "kuku" 
y = 1 
z = FALSE 
vars = list(x, y, z) 
vals = list(1, TRUE, "kuku", 2) 
vals %in% vars 
## [1] TRUE FALSE TRUE FALSE 

結果は、valsと同じ長さのベクトルであり、i要素は、vals[i]varsのどこにでも見つかるかどうかを示します。

いずれかまたはすべての値は、あなたの変数である場合anyまたはall

any(vals %in% vars) 
## [1] TRUE 
all(vals %in% vars) 
## [1] FALSE 
+0

ありがとう! –

関連する問題