使用列名称的字符向量访问data.table中的列

Dav*_*idR 8 r data.table

假设我有一个R data.table:

 DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
Run Code Online (Sandbox Code Playgroud)

我有一个我想要提取的列名字符向量,或者更一般地操作:

cols = c("x","y")
Run Code Online (Sandbox Code Playgroud)

例如,我如何使用cols生成等效的

 DT[,lapply(.SD[,list(x,y)], min) ]
Run Code Online (Sandbox Code Playgroud)

有没有办法使用cols向量指定列表(x,y)?

Cha*_*ase 7

您可以使用可选data.table:

> all.equal(DT[,list(x,y)], DT[, ..cols])
[1] TRUE
> all.equal(DT[,.SD[,list(x,y)][min(v)]], DT[,.SD[ ,min(v)], .SDcols = cols])
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

FAQ 1.6中的更多细节我相信:http://datatable.r-forge.r-project.org/datatable-faq.pdf