[R] assigning NULL to a list element without changing the length of the list

William Dunlap wdunlap at tibco.com
Thu Nov 15 22:09:18 CET 2012


tmp0 <- list(a=1, b=2, c=3)
tmp0["b"] <- list(NULL) # single [, list(NULL), not double [[ and bare NULL
str(tmp0)
# List of 3
#  $ a: num 1
#  $ b: NULL
#  $ c: num 3

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Gonçalo Ferraz
> Sent: Thursday, November 15, 2012 1:01 PM
> To: r-help at r-project.org
> Subject: [R] assigning NULL to a list element without changing the length of the list
> 
> Hi,
> 
> I have a list:
> 
> tmp0 <- list(a=1, b=2, c=3)
> 
> And I realize that I can append a NULL element to the end of this list, just by writing:
> 
> length(tmp0) <- 4
> 
> Now, the question is, how can I assign NULL to one of the existing list elements without
> changing the length of the list?
> 
> Please note I am working from inside a for loop that is working on one list element at a
> time and in some circumstances I want to
> set one element to NULL. So, specifying the whole list again as in:
> 
> tmp0 <- list(a=1,b=NULL,c=3)
> 
> is not an option.
> 
> But writing, say:
> 
> tmp0 [[2]] <- NULL
> 
> is not an option either, because it leaves me with a list of length 2.
> 
> Is there a solution for this?
> 
> Thank you
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list