DT - data.table,列"A"(列索引== 1),"B"(列索引2),"C"等
例如,下一个代码生成子集DT1,其中包含A == 2的行:
DT1 <- DT[A==2, ]
Run Code Online (Sandbox Code Playgroud)
但是如何仅使用列索引来创建像DT1这样的子集?
例如,像下一个代码不起作用:
DT1 <- DT[.SD==2, .SDcols = 1]
Run Code Online (Sandbox Code Playgroud)
建议不要使用列索引而不是列名,因为它会使您的代码难以理解,并且对于数据可能发生的任何更改都会敏捷.(例如,请参阅包FAQ中第一个问题的第一段.)但是,您可以使用列索引进行子集,如下所示:
DT = data.table(A = 1:5, B = 2:6, C = 3:7)
DT[DT[[1]] == 2]
# A B C
#1: 2 3 4
Run Code Online (Sandbox Code Playgroud)