I can define a list containing NULL elements:
> myList <- list("aaa",NULL,TRUE)
> names(myList) <- c("first","second","third")
> myList
$first
[1] "aaa"
$second
NULL
$third
[1] TRUE
> length(myList)
[1] 3
However, if I assign NULL to any of the list element then such
element is deleted from the list:
> myList$second <- NULL
> myList
$first
[1] "aaa"
$third
[1] TRUE
> length(myList)
[1] 2
> #
> myList$first <- NULL
> myList
$third
[1] TRUE
> length(myList)
[1] 1
Instead vectors cannot include NULL element:
> vec <- c(TRUE,NULL,FALSE)
> vec
[1] TRUE FALSE
> length(vec)
[1] 2
> vec[1] <- NULL
Error in vec[1] <- NULL : replacement has length zero
Is the above shown behaviour of list data structures to be expected ?
I took me a lot of sweat to figure out this wierd behaviour was the cause of a
bug
in my big program.
In general, if I have a list with some elements initialized to NULL, that can
be changed
dynamically, then how can I reinitialize such elements to NULL without deleting
them
from the list ?
Thank you in advance,
Maura
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.