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

変数に対して「1 レベル検索する」(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 に答える