Nic*_*bbe 17 r ellipsis dataframe
当我查看电脑上的内容时[[.data.frame
,这就是我得到的:
> get("[[.data.frame")
function (x, ..., exact = TRUE)
{
na <- nargs() - (!missing(exact))
if (!all(names(sys.call()) %in% c("", "exact")))
warning("named arguments other than 'exact' are discouraged")
if (na < 3L)
(function(x, i, exact) if (is.matrix(i))
as.matrix(x)[[i]]
else .subset2(x, i, exact = exact))(x, ..., exact = exact)
else {
col <- .subset2(x, ..2, exact = exact)
i <- if (is.character(..1))
pmatch(..1, row.names(x), duplicates.ok = TRUE)
else ..1
.subset2(col, i, exact = exact)
}
}
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)
我已经习惯了...
,但这是我第一次看到..1
和..2
.快速搜索R帮助和谷歌返回主要是垃圾,因为点通常被解释为占位符,所以我希望有人在这里可以给我一个指针?还是我错过了一些非常明显的东西?这些来自何处以及如何使用它们?
Rei*_*son 16
这是一种参考特殊旋风的第一,第二......元素的方法...
.所以..1
是引用第一个元素的方式...
,..2
指的是第二个元素,...
依此类推.
这在R.2 Internals手册的1.5.2点 - 点参数中提到,其相关位是:
的值
...
是(特殊)成对列表,其元素由特殊符号被称为..1
,..2
,...,其具有DDVAL
位集:当遇到这些中的一个是抬头(通过ddfindVar
在的值)...
的符号在评估框架.
添加到Gavin的答案:
它们也在保留字(?Reserved
)的帮助页面中简要提到.
一个非常简单的使用示例是
f <- function(...) print(..1)
f(x = 99) #prints 99
f() #throws an error
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
693 次 |
最近记录: |