[R] why doesn't ifelse work ?

Dennis Murphy djmuser at gmail.com
Fri Apr 29 04:49:28 CEST 2011


Hi:

It seems to work for me...here's a reproducible example.

set.seed(2053)
date <- seq(as.Date('1990-01-01'), by = 'days', length = 5000)
range(date)
# [1] "1990-01-01" "2003-09-09"
date <- sort(sample(date, 2000))
tdata <- data.frame(date = date, GSPC = rpois(2000, 1000))

library(zoo)
tdata2 <- tdata           # copy data frame just to be on the safe side
# Index GSPC by date
tdata2$GSPC <- with(tdata2, zoo(GSPC, date))
ind <- with(tdata2, rollmean(GSPC, 200, align =  'right'))
signal <- ifelse(diff(ind, 5) > 0, 1, -1)
> table(signal)
signal
 -1   1
903 893

Perhaps you can explain your problem in this context.

Dennis


On Thu, Apr 28, 2011 at 6:46 PM, eric <ericstrom at aol.com> wrote:
> I have the following lines of code:
>
> ind <- rollapply(GSPC, 200, mean)
> signal <- ifelse(diff(ind, 5) > 0 , 1 , -1)
> signal[is.na(signal)] <- 0
>
> I never get a value of -1 for signal even though I know diff(ind , 5) is
> less than zero frequently. It looks like when diff(ind , 5) is less than
> zero, signal gets set to 0 instead of - 1. Any ideas why ?  Here's some
> information on ind and diff(ind, 5) :
>
>> mode(diff(ind, 5) >0)
> [1] "logical"
>> class(diff(ind, 5) >0 )
> [1] "zoo"
>> str(diff(ind, 5) > 0 )
> ‘zoo’ series from 1990-05-31 to 2010-12-02
>  Data: logi [1:5171, 1] FALSE FALSE FALSE FALSE FALSE FALSE ...
>  - attr(*, "dimnames")=List of 2
>  ..$ : NULL
>  ..$ : chr "GSPC.Adjusted"
>  Index:  Date[1:5171], format: "1990-05-31" "1990-06-01" "1990-06-04"
> "1990-06-05" "1990-06-06" "1990-06-07" "1990-06-08" "1990-06-11" ...
>> class(ind)
> [1] "zoo"
>> mode(ind)
> [1] "numeric"
>> str(ind)
> ‘zoo’ series from 1990-05-23 to 2010-12-02
>  Data: num [1:5176, 1] 339 339 338 338 338 ...
>  - attr(*, "dimnames")=List of 2
>  ..$ : NULL
>  ..$ : chr "GSPC.Adjusted"
>  Index:  Date[1:5176], format: "1990-05-23" "1990-05-24" "1990-05-25"
> "1990-05-29" "1990-05-30" "1990-05-31" "1990-06-01" "1990-06-04"
>
> --
> View this message in context: http://r.789695.n4.nabble.com/why-doesn-t-ifelse-work-tp3482680p3482680.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list