[Rd] 'identical' and the warning "ignoring non-pairlist attributes"

peter dalgaard pdalgd at gmail.com
Sat Dec 11 11:23:08 CET 2010


On Dec 11, 2010, at 08:23 , Niels Richard Hansen wrote:

> Dear R developers
> 
> Using the 'foreach' package I encounter warnings like
> 
> Warning message:
> In identical(.combine, cbind) : ignoring non-pairlist attributes
> 
> Warnings appear once in a new R-session when I run a
> particular piece of code - and not again. I understand from
> the source code of 'identical' that the function checks and
> believes that .combine and cbind have non-pairlist attributes, but I
> don't understand how this can be the case
> 
> I have produced the following minimal example
> 
> data.frame()[rep(1,1e6), ]
> library(foreach)
> identical(foreach:::defcombine, cbind)
> 
> resulting in
> 
> [1] FALSE
> Warning message:
> In identical(foreach:::defcombine, cbind) :
>  ignoring non-pairlist attributes
> 
> The warning is not related to the foreach package it seems. I get
> the same kind of warning with e.g.
> 
> identical(spatial:::trmat, cbind)
> 
> in a new R-session. Many other functions I have tried do, however,
> not result in the warning. The warning depends on the supposedly completely
> unrelated data frame operation. It seems also to be related to the
> fact that the data frame is empty and I extract a large number of
> columns out of this empty data frame. I would highly appreciate help
> on this to get rid of the warning in my own package.

Hm, I think you might have tickled a buglet here. I can debug it down to a comparison of two CHARSXPs, both having CHARSXP attributes. I'm a getting a little rusty on debugging at that level, but I don't think CHARSXPs are supposed to _have_ attributes in any meaningful context, so perhaps identical() just shouldn't check. On the other hand, it could also be the sign of a memory overrun in the preceding memory-intensive operation. 


-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-devel mailing list