3

検討:

a <- c("a", "b", "c")
b <- c("a", "e", "f")
c <- c("a", "h", "i")

> a %in% b %in% c
[1] FALSE FALSE FALSE

TRUE FALSE FALSE各ベクトルの最初の要素は「a」であるため、これは に評価されると予想していました。そうでないのはなぜですか?

4

1 に答える 1

5

あなたがやっていることは、最初にこの操作a %in% bですTRUE FALSE FALSE。次に、基本的に chainc(TRUE,FALSE,FALSE) %in% cを実行します。もちろん、結果は all になりFalseます。

これを試して、必要なブール値のベクトルを取得できます(位置を考慮して):

a == Reduce(function(u,v) ifelse(u==v, u, F), list(a,b,c))
#[1]  TRUE FALSE FALSE

位置に依存するのではなく、共通の要素が必要な場合は、次のことができます。

Reduce(intersect, list(a,b,c))
于 2015-06-30T09:26:22.797 に答える