Почему функция c() принимает недокументированный аргумент?

Документация для базовой функции c() показывает свои аргументы по умолчанию как

c(..., recursive = FALSE)

Теперь, если мы определим

lst <- list(x = 1:5, y = 6:10)

а затем соедините список с

c(lst, recursive = TRUE)
# x1 x2 x3 x4 x5 y1 y2 y3 y4 y5 
#  1  2  3  4  5  6  7  8  9 10 

список сбрасывается, а имена сохраняются.

Но мы также можем использовать другой недокументированный аргумент use.names, чтобы удалить имена.

c(lst, recursive = TRUE, use.names = FALSE)
# [1]  1  2  3  4  5  6  7  8  9 10

Почему use.names не зарегистрирован как один из аргументов c()?

Ответы

Ответ 1

Я думаю, что это связано с recursive=TRUE, который, я считаю, должен использовать тот же код, что и unlist. Параметр use.names описан в ?unlist.

Ответ 2

c - это общая функция S4, что означает, что в зависимости от ее аргументов вызывается другая функция.

Не все из этих функций принимают аргумент use.names, поэтому нет смысла документировать его в документации для c().