[Rd] when to use pairlist instead list

William Dunlap wdunlap at tibco.com
Mon Dec 6 19:03:27 CET 2010


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?

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 



More information about the R-devel mailing list