メモ:listの要素にNULLを代入する
listの要素のNULLを代入するとどうなるか。Rおじさんならみんな知っているこの操作。
x <- list(a = 1, b = 2) x #> $a #> [1] 1 #> #> $b #> [1] 2 x$a <- NULL x #> $b #> [1] 2
そう、NULL
を代入した要素が消えます。じゃあほんとに文字通り「要素にNULL
を代入」したいとき、つまり、
list(a = 1, b = NULL) #> $a #> [1] 1 #> #> $b #> NULL
みたいなのにしたいときはどうするの??
というのがふと開いたヘルプ(?Extract
)に書かれていました。
Note that in all three kinds of replacement, a value of
NULL
deletes the corresponding item of the list. To set entries toNULL
, you needx[i] <- list(NULL)
.
つまり、こうです。
x <- list(a = 1, b = 2) x["a"] <- list(NULL) x #> $a #> NULL #> #> $b #> [1] 2
ちなみに、ややこしいのは[[
ではなくて[
を使わないといけないという点です。[[
を使うとこうなっちゃいます。
x <- list(a = 1, b = 2) x$a <- list(NULL) #> $a #> $a[[1]] #> NULL #> #> #> $b #> [1] 2
奥が深すぎるダロウ…