[Rd] How to assign NULL value to pairlist element while keeping it a pairlist?

Michael Lawrence lawrence.michael at gene.com
Wed Oct 12 18:40:53 CEST 2016


The coercion is probably the most viable workaround for now, as it's
consistent with what happens internally for calls. All pairlists/calls
are converted to list for subassignment, but only calls are converted
back. My guess is that the intent was for users to move from using a
pairlist to the "new" (almost 20 years ago) list. In my opinion,
consistency trumps "convenience" in this case. If others agree, I'll
change it to also coerce back to pairlist.

Michael

On Wed, Oct 12, 2016 at 9:20 AM, Henrik Bengtsson
<henrik.bengtsson at gmail.com> wrote:
> Hi, I seem to not be able to assign NULL to an element of a pairlist
> without causing it to be coerced to a plain list.  For example:
>
>> x <- pairlist(1, 2)
>> class(x)
> [1] "pairlist"
>
>> x[1] <- list(NULL)
>> class(x)
> [1] "list"
>
> This actually true for all [()<- assignments regardless of list value, e.g.
>
>> x <- pairlist(1, 2)
>> x[1] <- list(0)
> [1] "list"
>
> I also tried assigning a pairlist(), but still the same problem:
>
>> x <- pairlist(1, 2)
>> x[1] <- pairlist(0)
> [1] "list"
>
> The only workaround I'm aware of is to:
>
> x <- as.pairlist(x)
>
> at the end.  Any other suggestions?
>
> Thanks,
>
> Henrik
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list