我有两个data.frames
这样:
DF1:
col1 col2 col3
1 2 20
2 4 30
3 4 25
DF2:
colX colY colZ
5 12
1 9
1 2
现在我想在df2中为colZ指定值。当col1中的值等于colX且col2等于colY时,这必须是df1的col3中的数字
期望的输出:
DF2:
colX colY colZ
5 12 NA
1 9 NA
1 2 20
我希望有人可以帮助我
答案 0 :(得分:0)
使用具有足够铃声和口哨声的merge()
功能可以获得您想要的结果。这里的诀窍是使用by.x=c(...)
和by.y=c(...)
来指定合并期间要加入的多个列。还有一些按摩可以根据需要在所需的输出中获取列名。
result <- merge(df1, df2, by.x=c("col1", "col2"), by.y=c("colX", "colY"), all.y=TRUE)[, 1:3]
names(result) <- c("colX", "colY", "colZ")
> result
colX colY colZ
1 1 2 20
2 1 9 NA
3 5 12 NA