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. Thanks, Peter
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
Apparently Analagous Threads
- R CMD check thinks my function is an S3 method
- Creating S3 methods for S4 classes (coming from r-package-devel)
- [Bioc-devel] Conflicting definitions for function redefined as S4 generics
- RFC: Declaring "foo.bar" as nonS3method() ?!
- RFC: Declaring "foo.bar" as nonS3method() ?!