library(data.table)
dt <- data.table(a = 1:2, b = 2:3, c = 3:4)
dt[ , .(b, c)] # select the columns b and c
# Result:
# b c
# 1: 2 3
# 2: 3 4
13
对于 data.table>= 1.9.8 的版本,以下所有工作正常:
library(data.table)
dt <- data.table(a = 1, b = 2, c = 3)
# select single column by index
dt[, 2]
# b
# 1: 2
# select multiple columns by index
dt[, 2:3]
# b c
# 1: 2 3
# select single column by name
dt[, "a"]
# a
# 1: 1
# select multiple columns by name
dt[, c("a", "b")]
# a b
# 1: 1 2
对于 data.table< 1.9.8 的版本(其数字列选择需要使用 with = FALSE ),请参阅此答案的this previous version . 另见NEWS,v1.9.8中的变化/可能发生的变化/点2 .
5 回答
它已经习惯了使用隐藏的
.SD
变量 .这有点麻烦,但你不会失去其他data.table功能(我不认为),所以你仍然可以使用其他重要的功能,如连接表等 .
如果要使用列名来选择列,只需使用
.()
,这是list()
的别名:对于 data.table
>= 1.9.8
的版本,以下所有工作正常:对于 data.table
< 1.9.8
的版本(其数字列选择需要使用with = FALSE
),请参阅此答案的this previous version . 另见NEWS,v1.9.8中的变化/可能发生的变化/点2 .@Tom,非常感谢您指出这个解决方案 . 这对我很有效 .
我正在寻找一种方法来从打印和上面的示例中排除一列 . 要排除第二列,您可以执行以下操作
从v1.10.2开始,你也可以使用
..