私が持っている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:y1nxidx
> 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
y1from nfordは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]xx
> 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私を超えています!