5

次のシナリオがあります。まず、以下に示すようにデータテーブルを作成します

x = data.table(f1 = c('a','b','c','d'))
x = x[,rn := .I]

これにより、

> x
   f1 rn
1:  a  1
2:  b  2
3:  c  3
4:  d  4
>

rn は単に行番号です。今、私は別のdata.table yを持っています

y = data.table(f2=c('b','c','f'))

私ができるようにしたいのは、x にある y の要素に対して、rn の対応する値から 2 を減算したいということです。したがって、期待される data.table は

x
   f1 rn
1: a  1
2: b  0
3: c  1
4: d  4

どうやってこれにたどり着くのですか?x[y]結合するだけなので、y[x]まったく役に立ちません。

4

2 に答える 2

5

データにキーが付けられている場合は、次のように結合を使用できます。

setkey(x, f1)
x[y, rn := rn - 2L]
x
#   f1 rn
#1:  a  1
#2:  b  0
#3:  c  1
#4:  d  4
于 2013-11-07T23:58:24.313 に答える