That would be my preferred solution, but it would break backwards
compatibility for format="", so others may disagree.
Peter
On Wed, Aug 20, 2014 at 1:18 PM, Duncan Murdoch
<murdoch.duncan at gmail.com> wrote:
On 20/08/2014, 4:11 PM, Peter Langfelder wrote:
The default format="" in as.Date.character is supremely confusing. The
help shows as.Date defined as
## S3 method for class 'character'
as.Date(x, format = "", ...)
yet the function behaves very differently when format is not specified
and when it is specified to its default:
as.Date("2012-01-01")
[1] "2012-01-01"
as.Date("2012-01-01", format = "")
[1] "2014-08-20" ### Gives today.
The default setting is never used, because if format is not given,
values "%Y-%m-%d" and "%Y/%m/%d" are tried for it (rather than "").
My suggestion is to leave out the default "" for format in as.Date:
as.Date(x, format, ...)
If this causes a conflict in the S3 dispatching, at least indicate in
the help that the default is never used and the function works
differently if format is specified to its default.
Wouldn't it be simpler to change the test from
if (missing(format))
to
if (format == "")
?
Duncan Murdoch