基于regex选择data.table的列

如何基于正则表达式选择data.table的列?
考虑一个简单的例子如下:

库(data.table)
mydt<-数据表(foo=c(1,2),bar=c(2,3),baz=c(3,4))

是否有一种方法可以基于正则表达式使用数据表中的barbaz列?我知道下面的解决方案是可行的,但如果表大得多,我想选择更多的变量,这很容易变得麻烦

mydt[,(bar,baz)]

我希望在dplyr::select()中有类似matches()的内容,但只能通过引用

您还可以尝试使用%like%fromdata.table包,这是一个“调用regexpr的方便函数”。但是,这会使代码更具可读性;)

在这种情况下,回答您的问题:

mydt[,.SD,.SDcols=名称(mydt)%like%“bar | baz”]

由于%like%返回一个逻辑向量,因此除了包含“foo”的列外,我们可以使用以下内容获取每一列:

mydt[,.SD,.SDcols=!名称(mydt)%like%“foo”]

其中对逻辑向量求反

发表评论