Hi

The function `check_irregular()` defined within
`graphics::image.default()` checks if the `useRaster` argument for
`graphics::image()` can be true or must be false. 

According to this function, the following example vector is irregular:
```
time <- seq(as.Date("2020-1-1"), as.Date("2020-12-31"), l=12)
 check_irregular(time, time)
# TRUE
```
In my view, this is not correct. 

In this case, the `all.equal`-call does not evaluate to true due to the
special class of `dx` (or `dy`). If I slightly rewrite the function as
```
my_check_irregular <- function (x, y)
{ 
 dx <- as.numeric(diff(x)) 
 dy <- as.numeric(diff(y)) 
 (length(dx) && !isTRUE(all.equal(dx, rep(dx[1], length(dx))))) || 
 (length(dy) && !isTRUE(all.equal(dy, rep(dy[1], length(dy))))) 
}
 ```
the correct answer is obtained (i.e. that the input vector is not
irregular based on the rational behind `all.equal`):
```
my_check_irregular(time, time) 
# FALSE
 ```

The same applies to POSIX* objects. I was wondering if this is intended
or not?

Thanks a lot for any answer,
Chris 
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to