[Rd] Typo (?) in 'aggregate.formula'

Suharto Anggono Suharto Anggono suharto_anggono at yahoo.com
Mon Sep 3 11:06:56 CEST 2012


In the code for 'aggregate.formula', there is
if (as.character(formula[[2L]] == "."))
I believe that it is meant to be
if (as.character(formula[[2L]]) == ".")

However,
if (as.character(formula[[2L]] == "."))
gives the expected result.
Tracing:
- formula[[2L]] == "."
is equivalent to
as.character(formula[[2L]]) == "."
From the help page for '==' (Comparison), "Language objects such as symbols and calls are deparsed to character strings before comparison."
- By applying 'as.character', the TRUE/FALSE result of
formula[[2L]] == "."
is converted to character, becomes "TRUE"/"FALSE".
- Then, for 'if', it is implicitly converted back to logical.


> sessionInfo()
R version 2.14.2 (2012-02-29)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     


I see that, in R 2.15.1, the code for 'aggregate.formula' is still the same.



More information about the R-devel mailing list