【发布时间】:2018-01-04 22:40:11
【问题描述】:
以下代码确实有效,但我在data.table 帮助和小插图中找不到有关“..”(点点)运算符的任何文档:
library(data.table)
cols <- c("mpg", "gear")
DT <- as.data.table(mtcars)
DT[ , ..cols]
输出是:
mpg gear
1: 21.0 4
2: 21.0 4
3: 22.8 4
4: 21.4 3
5: 18.7 3
...
为什么会这样,有相关文档吗?
PS:通常我会使用mget 等...
编辑 1: 这不是保留名称 ...、..1、..2 等的普通 R 功能,这些名称用于引用从调用传递下来的参数功能(见?Reserved)。我的示例使用的不是数字,而是两个点后的字符。
编辑 2:这不是重复的,正如 Rich Scriven 的示例所示:
> mtcars[, ..cols]
Error in `[.data.frame`(mtcars, , ..cols) : object '..cols' not found
【问题讨论】:
-
不是data.table,只是R:stackoverflow.com/questions/19997231/two-dots-in-r
-
@RichScriven 我读过同样的书,如果你深入研究它说它相当于
DT[, .SD, .SDcols=cols]
标签: r data.table