[Rd] rep fails on pairlist

Duncan Murdoch murdoch.duncan at gmail.com
Fri Jul 27 01:29:19 CEST 2012

On 12-07-26 3:55 PM, Gabor Grothendieck wrote:
> This code which has worked for years in R but fails under R-devel:
>> R.version.string
> [1] "R Under development (unstable) (2012-07-25 r59963)"
>> n <- 3
>> f <- function(x) {}
>> formals(f) <- rep(formals(f), n) ##
> Error in rep(formals(f), n) : replication of pairlists is defunct
> The message suggests that the change was intentional.
> Why was this functionality removed?
> What code should be used in its place?

rep() on a pairlist didn't return a pairlist, it coerced to a list and 
then rep'd that.  So you could do the same explicitly if that's what you 
really want:

formals(f) <- rep(as.list(formals(f)), n)

This works because the formals<- code is forgiving; other uses of 
pairlists would not accept the result of rep on a pairlist.

Duncan Murdoch

More information about the R-devel mailing list