我想从名为dt的数据表中提取第4、5和6列

以下方法有效:

    dt[, c(4,5,6)]

但是以下内容却没有:
    a = c(4,5,6)
    dt[, a]

实际上,第二种方法给了我以下结果:
    4 5 6

有人可以告诉我为什么会这样吗?这两种方法看起来和我一样。

最佳答案

我们可以在对象'a'之前使用双点(..)提取列

dt[, ..a]
#   col4 col5 col6
#1:    4    5    6
#2:    5    6    7
#3:    6    7    8
#4:    7    8    9

或另一种选择是with = FALSE
dt[, a, with = FALSE]

数据
dt <- data.table(col1 = 1:4, col2 = 2:5, col3 = 3:6, col4 = 4:7, col5 = 5:8, col6 = 6:9)

关于r - 通过存储在数据表中的数字索引从数据表中提取列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49227360/

10-12 17:59
查看更多