クラスや一般的なパターン マッチングなどの条件で列を処理したいと考えていますgrep
。
私の最初の試みはうまくいきませんでした:
require(data.table)
test.table <- data.table(a=1:10,ab=1:10,b=101:110)
##this does not work and hangs on my machine
test.table[,lapply(names(test.table)[grep("a",names(test.table))], get)]
Ricardo Saporta は、この構造を使用できるが、ダミー関数でラップする必要があることを回答で指摘しています。get
##this works
test.table[,lapply(names(test.table)[grep("a",names(test.table))], function(x) get(x))]
なぜ匿名関数が必要なのですか?
(好ましい/よりクリーンな方法は.SDcols
:)経由です
test.table[,.SD,.SDcols=grep("a",names(test.table))]
test.table[, grep("a", names(test.table), with = FALSE]