On Mon, 6 Dec 2010, William Dunlap wrote:
I was writing some assertion tests for modelling-related code I had written and was surprised to see one test fail because the "specials" attribute of the output of terms() is a "pairlist" instead of a "list". In 2.12.0 I get:> dput(attr(terms(y~Spec(x1)+x2, specials=c("Spec")), "specials")) list(Spec = 2L) > all.equal(attr(terms(y~Spec(x1)+x2, specials=c("Spec")), "specials"), list(Spec=2L)) [1] "Modes: pairlist, list" > all.equal(attr(terms(y~Spec(x1)+x2, specials=c("Spec")), "specials"), pairlist(Spec=2L)) [1] TRUE > identical(attr(terms(y~Spec(x1)+x2, specials=c("Spec")), "specials"), pairlist(Spec=2L)) [1] TRUE I was wondering if there was a reason for using pairlist instead of list here or it it was just an historical artifact. In general, when should one use pairlists?
Probably never directly. But indirectly, a lot as for example argument lists are pairlists.
Looking at the code, I think this one is simply history. For completeness I will correct ?terms.object.
-- Brian D. Ripley, [email protected] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
