aynı adla alandan varolan değeri değiştirmek ve ben şöyle diğerine data.table alanları enjekte biliyorum:data.table: Başka içine bazı veri formu bir data.table birleştirmek gerekir
df1 <- data.table(Id = letters[1:5],a = 1:5)
df2 <- data.table(Id = letters[1:3],a = 7:9,b=7:9)
setkey(df1,Id)
setkey(df2,Id)
df1[df2,b:=b][]
#> Id a b
#> 1: a 1 7
#> 2: b 2 8
#> 3: c 3 9
#> 4: d 4 NA
#> 5: e 5 NA
ama alan zaten df1
bulunması halinde deyim çalışmaz:
df1[df2,a:=a][]
#> Id a
#> 1: a 1
#> 2: b 2
#> 3: c 3
#> 4: d 4
#> 5: e 5
ben saha a
zaten 012.394 mevcut olduğundan df1 Bu atama ile değişmez olduğunu anlamakve atama 'un sağ tarafındaki a
referansı, df2
'da açık değil, bu değere gider. Peki nasıl takip almak için df2$a
olanlar ile df1$a
yılında seçilen değerlerin değiştirilmesi konusunda giderdim:
#> Id a
#> 1: a 7
#> 2: b 8
#> 3: c 9
#> 4: d 4
#> 5: e 5
kullanımı 'j = a: = i.a' – jangorecki
Teşekkürler! Basit bir çözüm olması gerektiğini biliyordum! Sadece diğerleri için açık olmak gerekirse, j = 'argümanı '[.data.table',' df1 [df2, a: = i.a] gibi – Jthorpe