Я знаю, что значения 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", почему они ведут себя по-другому в этом случае?