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))
```
Loading
Please sign in to comment