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? -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
On 26 July 2012 at 15:55, 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? FWIW there are changes happening right now to rep() so that may be spillage from code under development. To keep abreast of these changes, I follow the RSS feed Duncan set up a few years ago -- it is also as html at http://developer.r-project.org/blosxom.cgi/R-devel and summarizes changes committed to the NEWS file, ie high-level changes worth knowing about. Dirk -- Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
On Thu, Jul 26, 2012 at 4:24 PM, Dirk Eddelbuettel <edd at debian.org> wrote:> > On 26 July 2012 at 15:55, 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? > > FWIW there are changes happening right now to rep() so that may be spillage > from code under development. To keep abreast of these changes, I follow the > RSS feed Duncan set up a few years ago -- it is also as html at > > http://developer.r-project.org/blosxom.cgi/R-devel > > and summarizes changes committed to the NEWS file, ie high-level changes > worth knowing about.That page says: Calling ?rep()? or ?rep.int()? on a pairlist or other non-vector object is now an error. so it again seems to be intentional. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
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
Possibly Parallel Threads
- How to assign NULL value to pairlist element while keeping it a pairlist?
- How to assign NULL value to pairlist element while keeping it a pairlist?
- How to assign NULL value to pairlist element while keeping it a pairlist?
- How to assign NULL value to pairlist element while keeping it a pairlist?
- pairlist objects