使用相同的列名对 data.table 的多个列进行子集化

joh*_*nny 1 r data.table

假设我有以下 data.table:

dt <- data.table(a = 1:3, b = 4:6, a = 7:9)

# dt
   a b a
1: 1 4 7
2: 2 5 8
3: 3 6 9
Run Code Online (Sandbox Code Playgroud)

如何对 data.table 进行子集化以便a选择具有该名称的所有列?

下面的代码只给我第一个匹配项。

dt[, "a", with = F]

   a
1: 1
2: 2
3: 3
Run Code Online (Sandbox Code Playgroud)

Mic*_*ico 5

我建议使用.SDcols

dt[ , .SD, .SDcols = patterns('^a$')]
Run Code Online (Sandbox Code Playgroud)