[R] if statement
Wacek Kusnierczyk
Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Mon Jan 5 13:17:27 CET 2009
Duncan Murdoch wrote:
> Shruthi Jayaram wrote:
>> Hi,
>>
>> How do I check for two conditions in an if loop? I want to check if a
>> value
>> lies between 2 other values.
>>
> "if" isn't normally a loop, but what you want is the vectorized
> version, the ifelse() function.
>> For example,
>> A <- ts(rnorm(120), freq=12, start=c(1992,8))
>> X <- 0.5
>> Y <- 0.8
>>
>> I would like to create a new vector C for which C[i] is 0 if A[i]
>> lies in
>> between X and Y.
>
> C <- ifelse( X < A & A < Y, 0, A)
or using Petr's hint:
C <- (A<X|A>Y)*A
which seems much faster on substantial inputs.
pay attention to whether your 'in between' is inclusive or not; the two
versions above are not equivalent.
vQ
More information about the R-help
mailing list