私はどのように機能するかに少し驚いていますdata.table
:
> library(data.table)
data.table 1.8.2 For help type: help("data.table")
> dt <- data.table(a=11:20, b=21:30, c=31:40, key="a")
> dt[list(12)]
a b c
1: 12 22 32
> dt[list(12), b]
a b
1: 12 22
> dt[list(12)][,b]
[1] 22
私がやろうとしているのは、選択に一致する行の単一の列(または式)の値を取得することです。生の数値はキー値ではなく行番号を示すため、キーをリストとして渡す必要があることがわかります。したがって、上記の最初のものは私には明らかです。しかし、2番目と3番目のサブセット式が異なる結果を生成する理由は、私にはかなり混乱しているように思われます。3番目の結果を取得したいのですが、2番目の方法で記述できることを期待しています。
行と列のdata.tableを同時にサブセット化すると、計算結果だけでなくキー値も常に含まれるという正当な理由はありますか?上記のように二重サブセット化する以外に、単一の結果を取得するための構文的に短い方法はありますか?
R2.15.1でdata.table1.8.2を使用しています。私の例を再現できない場合は、要因を重要なものと見なす方がよいでしょう。
dt <- data.table(a=paste("a", 11:20, sep=""), b=21:30, c=31:40, key="a")
dt["a11", b]