Мне известно, что значения NULL в списках могут иногда вызывать людей.Мне любопытно, почему в конкретном случае lapply
и rapply
, похоже, по-разному трактуют значения NULL
.
l <- list(a = 1, c = NULL, d = 3)
lapply(l,is.null)
$a
[1] FALSE
$c
[1] TRUE
$d
[1] FALSE
Пока все хорошо.Как насчет того, чтобы сделать то же самое с rapply
?
rapply(l, is.null, how = "replace")
$a
[1] FALSE
$c
list()
$d
[1] FALSE
Этот пример очень прост и не рекурсивен, но вы видите то же поведение в rapply
с вложенными списками.
Мой вопрос - почему?Если, как объявлено в ?rapply
, это «рекурсивная версия lapply», почему они ведут себя так по-разному в этом случае?