我希望通过类或常见模式匹配等标准来处理列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]