R lapply 拆分 data.table 列并在每个列表元素中保留列名

R lapply split data.table columns and reserve column names in each list element

我想为每个列表元素保留列名,因此列名是 C1C2C3 而不是 V1。有没有办法在 lapply(samp, function(...) {}) 内完成?

library(data.table)
samp <- data.table("C1"=letters[1:3], "C2"=letters[4:6], "C3"=letters[7:9])
samp_list <- lapply(samp, data.table)

> samp_list
$C1
   V1
1:  a
2:  b
3:  c

$C2
   V1
1:  d
2:  e
3:  f

$C3
   V1
1:  g
2:  h
3:  i

理想情况下,类似于以下内容。不过,我不太关心列表名称,以防有帮助。

> samp_list
$C1
   C1
1:  a
2:  b
3:  c

$C2
   C2
1:  d
2:  e
3:  f

$C3
   C3
1:  g
2:  h
3:  i

尝试遍历列名或列索引

lapply(seq_along(samp), function(i) samp[, ..i])