Skip to content
Commit 309d2f84 authored by David Shaub's avatar David Shaub
Browse files

Speed up is.constant() by an order of magnitude

```
is.constant <- function(x)
{
  x <- as.numeric(x)
  y <- rep(x[1],length(x))
  isequal <- all.equal(c(x),y)
  return(isequal==TRUE)
}


is.constant2 <- function(x)
{
  x <- as.numeric(x)
  y <- rep(x[1], length(x))
  return(identical(x, y))
}


require(microbenchmark)

testseries <- rep(1, 10^5)
is.constant(testseries) == is.constant2(testseries)
microbenchmark(is.constant(testseries), is.constant2(testseries))


testseries <- c(rep(1, 10^5), 100)
is.constant(testseries) == is.constant2(testseries)
microbenchmark(is.constant(testseries), is.constant2(testseries))

testseries <- c(100, rep(1, 10^5), 100)
is.constant(testseries) == is.constant2(testseries)
microbenchmark(is.constant(testseries), is.constant2(testseries))

testseries <- c(rep(1, 10^5), 100)
is.constant(testseries) == is.constant2(testseries)
microbenchmark(is.constant(testseries), is.constant2(testseries))

testseries <- ts(rep(1, 10^5), f = 12)
is.constant(testseries) == is.constant2(testseries)
microbenchmark(is.constant(testseries), is.constant2(testseries))
```
parent 18daf0d2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment