我有Table1和Table2,我想获得Table3。
对于表3中的每一行
表1:
id var
01 2
02 3
表2:
id var
02 4
03 5
表3:
id var var_difference
02 4 1
答案 0 :(得分:4)
数据强>
t1 <- data.frame(id = paste0("0", 1:2), var = 2:3)
t2 <- data.frame(id = paste0("0", 2:3), var = 4:5)
<强>代码强>
transform(merge(t1, t2, by = "id"),
var = var.x, var_difference = var.y - var.x,
var.x = NULL, var.y = NULL)
# id var var_difference
# 1 02 3 1
<强>解释强>
使用merge
创建data.frame
,其中包含具有相同id
的行。 transform
对返回的data.frame
起作用,并格式化您想要的输出。首先,创建列var
,然后创建列var_difference
。最后,删除了var.x
和var.y
。后面的列由merge
创建,代表var
(merge
和t1
)两个参数的t2
列。
答案 1 :(得分:0)
tab3 <- merge(tab1, tab2, by = "id")
tab3$var_difference <- tab3[ ,3] - tab3[ ,2]
tab3 <- tab3[ ,-2:-3]
答案 2 :(得分:0)
尝试以下方法:
Table3 <- merge(Table1[,'id'], Table2, by.x = 'id', by.y = 'id')
Table3$var_difference <- Table2$var[Table2$id %in% Table3$id] - Table1$var[Table1$id %in% Table3$id]