假設我具有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向量來指定列表(x,y)?
假設我具有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向量來指定列表(x,y)?
您可以使用可選的with = FALSE
:在FAQ 1.6
> all.equal(DT[,list(x,y)], DT[, cols, with = FALSE])
[1] TRUE
> all.equal(DT[,.SD[,list(x,y)][min(v)]], DT[,.SD[,cols, with = FALSE][min(v)]])
[1] TRUE
更多細節,我相信:http://datatable.r-forge.r-project.org/datatable-faq.pdf
類似:http://stackoverflow.com/questions/14937165/using-dynamic-column -names-in-data-table – 2013-02-21 18:47:14