unlist(recursive=FALSE) returns NULL elements when passed a nested pairlist containing non-NULL data:
x <- pairlist(pairlist(1:2)) unlist(x, recursive=FALSE) ## [[1]] ## NULL version 2.7.2 RC (2008-08-18 r46382) under linux I'm unaware of any motivation for constructing the above data structure, but if unlist is going to operate on it without error I would be surprised if that is the correct answer. However as I do not know anything about pairlists I have not submitted this to r-bugs. I'd also appreciate any comments on the following issue: The documentation for unlist says recursive: logical. Should unlisting be applied to list components of 'x'? Now, y <- list(a=1:2, b=list(b1=3:4, b2=5:6)) My expectation was that unlist(y, recursive=FALSE) would be the following length 3 list: list(a1=1, a2=2, b=list(b1=3:4, b2=5:6)) However str(unlist(y, recursive=FALSE)) ## List of 4 ## $ a1 : int 1 ## $ a2 : int 2 ## $ b.b1: int [1:2] 3 4 ## $ b.b2: int [1:2] 5 6 I'm tempted to say that, contary to the documentation, (partial) unlisting has in fact been applied to a list component of x (x$b): it contributes 2 components to the result, rather than one. I say partial because the numeric vectors in x$b have not been broken up into separate elements in the answer. However, I imagine that this is the intended behaviour, and that my incorrect expectation is a result of not understanding the underlying list representations. Any explanation would be appreciated. Dan -- http://www.stats.ox.ac.uk/~davison ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel