の数値インデックス (位置) のベクトルを使用して複数の列を選択するにはどうすればよいdata.table
でしょうか?
これは、 で行う方法ですdata.frame
。
df <- data.frame(a = 1, b = 2, c = 3)
df[ , 2:3]
# b c
# 1 2 3
の数値インデックス (位置) のベクトルを使用して複数の列を選択するにはどうすればよいdata.table
でしょうか?
これは、 で行う方法ですdata.frame
。
df <- data.frame(a = 1, b = 2, c = 3)
df[ , 2:3]
# b c
# 1 2 3
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のニュース、潜在的に重大な変更、ポイント3も参照してください。
.SD
少し冗長ですが、隠し変数の使用に慣れてきました。
b<-data.table(a=1,b=2,c=3,d=4)
b[,.SD,.SDcols=c(1:2)]
少し面倒ですが、他の data.table 機能を失うことはないので (私はそうは思いません)、結合テーブルなどの他の重要な機能を引き続き使用できるはずです。
@トム、この解決策を指摘してくれてありがとう。それは私にとってとてもうまくいきます。
印刷と上記の例から 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)]