有没有办法使用表 T2 中的列 B 基于 R 中的一组条件来更新表 T1 中的列 A?



我正在尝试在R中创建类似于以下内容的代码:

UPDATE Table_1 A SET Column_1= 
(SELECT Column_2 FROM Tabla_2 WHERE
Column_3=A.Column_3 AND
Column_4=A.Column_4
HAVING INDEX=MIN(INDEX));

例如,具有以下数据框:

Table_1 <-data.frame(
Column_1=c(1,1,1,1),
Column_3=c("1","2","3","1"),
Column_4=c("A","B","C","A")
)

Table_2<-data.frame(
Column_2 =c(2,3,4,5),
Column_3=c("1","2","3","4"),
Column_4=c("A","B","C","D")
)

我想更新表 1 以最终如下所示:

Table_1 <-data.frame(
Column_1=c(2,3,4,2),
Column_3=c("1","2","3","1"),
Column_4=c("A","B","C","A")
)

有了data.table,我们可以做一个连接和赋值(:=(

library(data.table)
setDT(Table_1)[Table_2, Column_1 := Column_2, on = .(Column_4)]
Table_1
#   Column_1 Column_3 Column_4
#1:        2        1        A
#2:        3        2        B
#3:        4        3        C
#4:        2        1        A

最新更新