メモ:リストの要素を消したいときはx[i] <- NULL、NULLを代入したいときはx[i] <- list(NULL)

ってFAQに書いてあるのを毎回忘れるのでメモ。

In R, if x is a list, then x[i] <- NULL and x[[i]] <- NULL remove the specified elements from x. The first of these is incompatible with S, where it is a no-op. (Note that you can set elements to NULL using x[i] <- list(NULL).) (https://cran.r-project.org/doc/FAQ/R-FAQ.html#Others)

x <- list(i = 1, j = 2)
x["i"] <- NULL
x
#> $j
#> [1] 2

x <- list(i = 1, j = 2)
x["i"] <- list(NULL)
x
#> $i
#> NULL
#> 
#> $j
#> [1] 2

これがx[[i]] <- list(NULL)とかx$i <- list(NULL)だと、NULLではなくlist(NULL)が代入されるので注意。