为什么“ ..”可以在字符向量变量中传递列名?

尤达

以下代码可以正常工作,但..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等等,这些都用于指将参数从一个调用函数(参见传下来?Reserved)。我的示例使用的不是数字,而是两个点后的字符。

编辑2:这不是重复项,如Rich Scriven的示例所示:

> mtcars[, ..cols]
Error in `[.data.frame`(mtcars, , ..cols) : object '..cols' not found
丰富的雕刻

这是data.table v1.10.2中新增的实验性功能在data.table newsNEW FEATURES部分中说明了v1.10.2中的更改

读取(直接引用):

j与前缀符号..将在呼叫范围进行查找,并采取它的值是列名或数字。

myCols = c("colA","colB")
DT[, myCols, with=FALSE]
DT[, ..myCols]              # same

当您看到..前缀时,请所有操作系统中的目录(即父目录)一样向上升级..将来..可以使前缀适用于所有内部出现的符号DT[...]它旨在作为一种方便的方法来保护您的代码以免意外选择列名。类似于x.i.前缀(类似于SQL表别名)已可以用于消除x和中存在的相同列名的歧义i符号前缀而不是..() 函数如果您在调用范围中有许多变量希望安全地在表达式中使用,则对于我们内部优化将更容易,并且更加方便。此功能于2012年首次提出,并长期以来一直希望获得#633的支持这是实验性的。

注意: 阿伦(Arun)的回答使我了解了这些信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么传递的变量不呈现在html / template中?

来自分类Dev

为什么可以从函数中返回“向量”?

来自分类Dev

为什么变量可以在Julia宏名称修饰中以#开头?

来自分类Dev

为什么可以在变量中存储原型的功能?

来自分类Dev

为什么可以从字符串变量而不是PHP中的字符串实例化类?

来自分类Dev

为什么使用Clojure向量传递键值对?

来自分类Dev

为什么函数参数可以在C中包含地址或变量

来自分类Dev

为什么JavaScript中[]!== []?

来自分类Dev

为什么Scala中的Final变量可以更改值

来自分类Dev

为什么可以使用[=]修改lambda中的成员变量?

来自分类Dev

为什么可以给变量“ let”赋值?

来自分类Dev

C ++-为什么可以直接在Copy构造函数中访问传递的对象的私有变量?

来自分类Dev

laravel为什么更改列名?

来自分类Dev

Python:为什么变量可以独立存在?

来自分类Dev

为什么值是向量?

来自分类Dev

为什么在此代码中可以引用“ r”变量?

来自分类Dev

为什么未定义的undef变量变成{}?

来自分类Dev

为什么可以在扩展函数中传递接口的方法/属性

来自分类Dev

为什么将此字符作为整数放入向量中?

来自分类Dev

我在音速pi中的音量变量没有变化-为什么?

来自分类Dev

为什么变量未知?

来自分类Dev

为什么在“ char”变量中可以存储多个字符?

来自分类Dev

为什么分配的局部变量变为空

来自分类Dev

为什么可以传递其他类型

来自分类Dev

为什么for循环可以初始化Java中按值传递的变量

来自分类Dev

为什么可以从php中的数组调用变量函数?

来自分类Dev

为什么路径变量会丢失字符?

来自分类Dev

在“{}”中传递包含 JSON 的变量的行为不同 - 为什么?

来自分类Dev

为什么我们在 React js 中定义常量变量时使用花括号?

Related 相关文章

  1. 1

    为什么传递的变量不呈现在html / template中?

  2. 2

    为什么可以从函数中返回“向量”?

  3. 3

    为什么变量可以在Julia宏名称修饰中以#开头?

  4. 4

    为什么可以在变量中存储原型的功能?

  5. 5

    为什么可以从字符串变量而不是PHP中的字符串实例化类?

  6. 6

    为什么使用Clojure向量传递键值对?

  7. 7

    为什么函数参数可以在C中包含地址或变量

  8. 8

    为什么JavaScript中[]!== []?

  9. 9

    为什么Scala中的Final变量可以更改值

  10. 10

    为什么可以使用[=]修改lambda中的成员变量?

  11. 11

    为什么可以给变量“ let”赋值?

  12. 12

    C ++-为什么可以直接在Copy构造函数中访问传递的对象的私有变量?

  13. 13

    laravel为什么更改列名?

  14. 14

    Python:为什么变量可以独立存在?

  15. 15

    为什么值是向量?

  16. 16

    为什么在此代码中可以引用“ r”变量?

  17. 17

    为什么未定义的undef变量变成{}?

  18. 18

    为什么可以在扩展函数中传递接口的方法/属性

  19. 19

    为什么将此字符作为整数放入向量中?

  20. 20

    我在音速pi中的音量变量没有变化-为什么?

  21. 21

    为什么变量未知?

  22. 22

    为什么在“ char”变量中可以存储多个字符?

  23. 23

    为什么分配的局部变量变为空

  24. 24

    为什么可以传递其他类型

  25. 25

    为什么for循环可以初始化Java中按值传递的变量

  26. 26

    为什么可以从php中的数组调用变量函数?

  27. 27

    为什么路径变量会丢失字符?

  28. 28

    在“{}”中传递包含 JSON 的变量的行为不同 - 为什么?

  29. 29

    为什么我们在 React js 中定义常量变量时使用花括号?

热门标签

归档