From deepayan.sarkar at gmail.com  Fri Jun 28 13:17:06 2013
From: deepayan.sarkar at gmail.com (Deepayan Sarkar)
Date: Fri, 28 Jun 2013 16:47:06 +0530
Subject: [Rd] 'modifyList' drops (not adds) NULL components
In-Reply-To: <1D693EC430D9BA40A64CB59875BED8CF013447FF8464@USCTMXP51004.merck.com>
References: <1D693EC430D9BA40A64CB59875BED8CF013447FF8464@USCTMXP51004.merck.com>
Message-ID: <CADfFDC5H8LBnrbxwQGN_nuv9UnacRVRo1xagp=aDTmS_zwHEBg@mail.gmail.com>

On Thu, Jun 27, 2013 at 10:59 PM, Raubertas, Richard
<richard_raubertas at merck.com> wrote:
> Dear list,
>
> Utils::modifyList() drops NULL components in its second argument, instead of adding them to the first argument.  Compare:
>> modifyList(x=list(A=1), val=list(B=2, C=3))
> $A
> [1] 1
>
> $B
> [1] 2
>
> $C
> [1] 3
>
>> modifyList(x=list(A=1), val=list(B=NULL, C=3))
> $A
> [1] 1
>
> $C
> [1] 3
>
> To me this seems inconsistent with the documentation ("Elements in 'val' which are missing from 'x' are added to 'x'."),

Agreed.

> and also with how I'd want the function to behave.

Note that you still get

> foo <- modifyList(x=list(A=1), val=list(B=NULL, C=3))
> foo$B
NULL

So is there a specific reason you want the NULL elements to be
explicitly listed?

-Deepayan

>
>> sessionInfo()
> R version 3.0.1 Patched (2013-06-16 r62969)
> Platform: x86_64-w64-mingw32/x64 (64-bit)
>
> locale:
> [1] LC_COLLATE=English_United States.1252
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
>
> Richard Raubertas
> Merck & Co.



[Rd] 'modifyList' drops (not adds) NULL components
Deepayan Sarkar