8

假设我有一个 R data.table:

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

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

cols = c("x","y")

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

 DT[,lapply(.SD[,list(x,y)], min) ]

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

4

1 回答 1

7

您可以对变量使用“查找一级”(如在 Unix 终端中)的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

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

于 2013-02-21T17:06:26.140 回答