Как сгладить список в список без принуждения?
Я пытаюсь добиться функциональности, аналогичной unlist, за исключением того, что типы не приводятся к вектору, а вместо этого возвращается список с сохраненными типами. Например:
flatten(list(NA, list("TRUE", list(FALSE), 0L))
должен вернуться
list(NA, "TRUE", FALSE, 0L)
вместо
c(NA, "TRUE", "FALSE", "0")
который будет возвращенunlist(list(list(NA, list("TRUE", list(FALSE), 0L))
.
Как видно из приведенного выше примера, выравнивание должно быть рекурсивным. Есть ли в стандартной библиотеке R функция, которая достигает этого, или, по крайней мере, какая-то другая функция, которая может быть использована для простой и эффективной реализации этого?
ОБНОВИТЬЯ не знаю, ясно ли это из вышесказанного, но не-списки не должны быть сведены, т.е.flatten(list(1:3, list(4, 5)))
должен вернутьсяlist(c(1, 2, 3), 4, 5)
.