2012-11-14 37 views
2

假設我有一個變量y和一個變量iR:如何測試多個條件?

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

比方說,我想測試下if語句爲布爾條件y

if (y) { 
i<-1 
} 

我會怎麼做呢?也就是說,我想要i = 1如果布爾條件yTRUE

如果y<- c(TRUE, FALSE,TRUE),那麼我希望if語句評估爲FALSEi=0。有誰知道我該怎麼做?目前,我得到這個警告消息:

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

我將如何測試變量y爲每個它的布爾條件?

回答

3

您正在尋找all功能。

> y <- c(T, T, T) 
> all(y) 
[1] TRUE 
> y <- c(T, T, F) 
> all(y) 
[1] FALSE 
+0

謝謝@Dason我很感激 – cooldood3490

4

爲了詳細說明@達誠的回答,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)