3

これはおそらく非常に基本的な R の質問です...そして、尋ねるのは少し悪い気がします...しかし、次の論理関数を実行する==or |or !or etc のようなコードは少しありますか?&

もしも

x== ベクトルに含まれる要素の値のいずれかy

次にTRUE

そうしないと

間違い

4

3 に答える 3

12

実際、あなたが言ったことにかなり近いです。

any(x == y)

x と y の長さが互いに倍数でない場合は警告がスローされますが、これは x と y の任意の長さで機能します。x と y が同じ長さであることが最適です。ただし、x が 1 つのアイテムであるという限られたケースでは、

x %in% y

も機能します。また、y と同じ長さではないが 1 項目より長い x がある場合は、おそらく次の方法が最も賢明です。

any(x %in% y)
于 2012-10-19T04:30:54.473 に答える
5

あなたが試すことができます

x %in% y 

ここyで、はベクトルです。

于 2012-10-19T04:09:54.890 に答える
3

もう 1 つの解決策は、x がベクトルで y がベクトルであり、両方のベクトルにあるすべての値を表示したい場合に intersect 関数を使用することです。これは、x または y がスカラーの場合にも機能します。

# Sample Data
x <- 1:40
y <- 35:100

# We know that 35, 36, 37, 38, 39, 40 are in both vectors
intersect(x, y)
[1] 35 36 37 38 39 40

あなたが解決しようとしている正確な問題はわかりませんが、どの値が y にあるかを知る必要があると仮定すると、これは役立つかもしれません。

x %in% y を使用して取得するブール値ベクトルを表示せずに TRUE/FALSE の回答が必要な場合は、次のように使用できます。

length(intersect(x, y)) > 0
[1] TRUE
于 2012-10-19T12:23:44.993 に答える