私が持っているdata.tables
DT
場合neighbors
:
set.seed(1)
library(data.table)
DT <- data.table(idx=rep(1:10, each=5), x=rnorm(50), y=letters[1:5], ok=rbinom(50, 1, 0.90))
n <- data.table(y=letters[1:5], y1=letters[c(2:5,1)])
n
ルックアップテーブルです。いつでも、対応するを検索し、その値をとに使用したいok == 0
と思います。例として、DTの行4:y1
n
x
idx
> DT
idx x y ok
1: 1 -0.6264538 a 1
2: 1 0.1836433 b 1
3: 1 -0.8356286 c 1
4: 1 1.5952808 d 0
5: 1 0.3295078 e 1
6: 2 -0.8204684 a 1
y1
from n
ford
はe
:_
> n[y == 'd']
y y1
1: d e
idx
行4の場合は1です。したがって、次を使用します。
> DT[idx == 1 & y == 'e', x]
[1] 0.3295078
すべての値を適切なn['y1']値に置き換えて、出力をdata.table
同じようにしたいと思います。DT[ok == 0]
x
x
> output
idx x y ok
1: 1 0.3295078 d 0
2: 2 -0.3053884 d 0
3: 3 0.3898432 a 0
4: 5 0.7821363 a 0
5: 7 1.3586800 e 0
6: 8 0.7631757 d 0
plyr
ベースRまたは...そしておそらく金曜日の遅くにこれを行ういくつかの方法を考えることができます...しかし、これが必要とするマージのシーケンスが何であれ、data.table
私を超えています!