[Rd] unlist errors on a nested list of empty lists
Duncan Murdoch
murdoch@dunc@n @ending from gm@il@com
Tue May 8 20:58:43 CEST 2018
On 08/05/2018 1:48 PM, Steven Nydick wrote:
> Reproducible example:
>
> x <- list(list(list(), list()))
> unlist(x)
>
> *> Error in as.character.factor(x) : malformed factor*
The error comes from the line
structure(res, levels = lv, names = nm, class = "factor")
which is called because unlist() thinks that some entry is a factor,
with NULL levels and NULL names. It's not legal for a factor to have
NULL levels. Probably it should never get here; the earlier test
if (.Internal(islistfactor(x, recursive))) {
should have been false, and then the result would have been
.Internal(unlist(x, recursive, use.names))
(with both recursive and use.names being TRUE), which returns NULL.
Duncan Murdoch
>
> What should happen:
>
> unlist(x)
>> NULL
>
> R.version
> platform x86_64-apple-darwin15.6.0
> arch x86_64
> os darwin15.6.0
> system x86_64, darwin15.6.0
> status
> major 3
> minor 5.0
> year 2018
> month 04
> day 23
> svn rev 74626
> language R
> version.string R version 3.5.0 (2018-04-23)
> nickname Joy in Playing
>
More information about the R-devel
mailing list