x [,cols]不等于x [,..cols]和x [,cols,= FALSE]

时间:2019-05-06 05:26:09

标签: r data.table

1.12.2文档中提到with=FALSE不再需要动态选择列。请注意,x[, cols]等效于x[, ..cols]x[, cols, with=FALSE]。但是当我使用它时,会收到警告

https://cran.r-project.org/web/packages/data.table/data.table.pdf

tmp = data.table(x = numeric(0), y = numeric(0))
cols = c('x', 'y')
tmp[, cols]
  

[.data.table(tmp,,cols)中的错误:      j([...]中的第二个参数)是单个符号,但列名“ cols”是      未找到。也许您打算使用DT [,..cols]。与data.frame的区别      是常见问题,并在FAQ 1.1中进行了解释。

tmp[, ..cols]
# Empty data.table (0 rows) of 2 cols: x,y

tmp[, cols, with = FALSE]
# Empty data.table (0 rows) of 2 cols: x,y

我希望cols的行为与文档类似。另外,变体tmp[, ..cols]也会引起对象使用的棉绒问题(这对于静态分析代码很有用)。

0 个答案:

没有答案