Как сгладить список в список без принуждения?

Я пытаюсь добиться функциональности, аналогичной 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).

Ответы на вопрос(6)

Ваш ответ на вопрос