[Rd] A wrapper of seq.Date() encounters an issue

Earo Wang earo.wang at gmail.com
Wed Oct 18 10:34:14 CEST 2017


Hello,

I’ve tried to have a wrapper function of seq.Date(), saying seq_date(). The
seq_date() function takes exactly the same arguments and the defaults as
seq.Date(). The seq_date() is expected to return the same results as
seq.Date(), but it triggers an error in seq.Date(). The little reproducible
example shows below:

seq_date <- function(from, to, by, length.out = NULL, along.with = NULL) {
  seq.Date(
    from = from, to = to, by = by,
    length.out = length.out, along.with = along.with
  )
}
start <- as.Date("2017-10-01")
end <- as.Date("2017-10-18")
seq_date(from = start, to = end, by = 1)#> Error in seq.Date(from =
from, to = to, by = by, length.out = length.out, : exactly two of
'to', 'by' and 'length.out' / 'along.with' must be specified
seq.Date(from = start, to = end, by = 1)#>  [1] "2017-10-01"
"2017-10-02" "2017-10-03" "2017-10-04" "2017-10-05"#>  [6]
"2017-10-06" "2017-10-07" "2017-10-08" "2017-10-09" "2017-10-10"#>
[11] "2017-10-11" "2017-10-12" "2017-10-13" "2017-10-14"
"2017-10-15"#> [16] "2017-10-16" "2017-10-17" "2017-10-18"

I think that the unexpected issue arises from missing(along.with) inside
the seq.Date() function. The documentation of missing() explains that it
can only be used in the immediate body of the function, not in the body of
a nested function. This is probably the reason that the wrapper seq_date()
fails. It would fix the issue by using is.null(along.with) instead of
missing(along.with). I’ve also attached the associated patch. Below shows
the R version.

R.version#>                _                           #> platform
  x86_64-apple-darwin15.6.0   #> arch           x86_64
     #> os             darwin15.6.0                #> system
x86_64, darwin15.6.0        #> status
   #> major          3                           #> minor          4.2
                        #> year           2017
#> month          09                          #> day            28
                     #> svn rev        73368                       #>
language       R                           #> version.string R version
3.4.2 (2017-09-28)#> nickname       Short Summer

Thanks for your time.

Kind regards,
Earo
​
-- 
https://earo.me


More information about the R-devel mailing list