回答:
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
)については、この回答の以前のバージョンを参照してください。v1.9.8のNEWS、潜在的に重大な変更、ポイント3 も参照してください。
DT[,list(b:c)
、データテーブルの列を直接変換するのが便利だとわかったので(たとえば、できるDT[,list(1/b,2*c)]
)、これはで機能しません。
with=FALSE
。この場合には不要:github.com/Rdatatable/data.table/issues/...
data.frame
互換性のある使用方法はありませんwith=FALSE
。しかし、約3週間前のように、開発バージョンのdata.tableは、などの呼び出しに変更されているdt[, 2]
、dt[, 2:3]
、dt[, "b"]
、とdt[, c("b", "c")]
彼らはとしてやると同じように振る舞うdata.frame
のせずに明示的に設定しましたwith=FALSE
。すごい!変更を説明するNEWSエントリを含む特定のコミットについては、こちらを参照してください。
v1.10.2以降では、 ..
dt <- data.table(a=1:2, b=2:3, c=3:4)
keep_cols = c("a", "c")
dt[, ..keep_cols]
dt[, !..keep_cols]
し、 dt[, -..keep_cols]
期待どおりに動作!
@トム、この解決策を指摘してくれてありがとう。それは私にとって素晴らしい働きをします。
私は、1つの列を印刷および上記の例から除外する方法を探していました。2番目の列を除外するには、次のようなことができます
library(data.table)
dt <- data.table(a=1:2, b=2:3, c=3:4)
dt[,.SD,.SDcols=-2]
dt[,.SD,.SDcols=c(1,3)]
dt[,"a"]
、比較して、dt[,"a", with=FALSE]
それが本当に役立つオプションを確認してください。