为什么函数c()接受一个未记录的参数?

时间:2014-07-18 00:17:48

标签: r function arguments

基函数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()的参数之一?

2 个答案:

答案 0 :(得分:10)

我认为这是由recursive=TRUE引起的,我认为必须使用与unlist相同的代码。 use.names中描述了?unlist参数。

答案 1 :(得分:3)

c是一个S4通用函数,这意味着根据其参数调用不同的函数。

并非所有这些函数都使用参数use.names,因此在c()的文档中记录它是没有意义的。