2

変数yと変数があるとしますi

y<- c(TRUE, TRUE, TRUE)
i<- 0

次のすべてのブール条件に対して次のifステートメントをテストしたいとしますy

if (y) {
i<-1
}

どうすればいいですか?つまり、のすべてのブール条件がであるi = 1かどうかが必要です。yTRUE

の場合y<- c(TRUE, FALSE,TRUE)、ifステートメントをとに評価する必要がFALSEありi=0ます。誰かが私がこれをどのように行うか知っていますか?現在、次の警告メッセージが表示されます。

Warning message:
In if (y) { :
  the condition has length > 1 and only the first element will be used.

yブール条件ごとに変数をテストするにはどうすればよいですか?

4

2 に答える 2

4

@Dasonの答えを詳しく説明し all() any() sum()which()論理ベクトルを操作するときに非常に役立ちます

例:

      vec1 <- c(T, T, F, T, F)

>     all(vec1)   # Are all elements True
      [1] FALSE

>     any(vec1)   # Are any True
      [1] TRUE

>     sum(vec1)   # How many are True
      [1] 3

>     which(vec1) # Which elements (by index) are True
      [1] 1 2 4

>     which(!vec1) # Which elements (by index) are False
      [1] 3 5

例2:

vec2 <- c(T, T, T, T, T)

all(vec2)     # TRUE
any(vec2)     # TRUE
sum(vec2)     # 5
which(vec2)   # 1 2 3 4 5
which(!vec2)  # integer(0)
于 2012-11-14T06:45:17.237 に答える
3

あなたはその機能を探していallます。

> y <- c(T, T, T)
> all(y)
[1] TRUE
> y <- c(T, T, F)
> all(y)
[1] FALSE
于 2012-11-14T02:28:31.400 に答える