我的问题与此类似,但我的问题更简单,所以我希望有更简单的解决方案。How to merge two datasets based on similar but not exact time variable written in string. using R?
我的 Dataframe 看起来像这样:
a <- data.frame(ID = 1:4,
EG = c("CA", "EV", "EV", "TR"),
year =c(2000, 2005, 2010, 2020), test = sample(4))
b <- data.frame(ID = 1:4,
EG = c("CA", "EV", "EV", "TR"),
test = sample(20),
year = sample(2000:2019, 20, replace=TRUE))
现在我想执行一个左连接,比如merge(b, a, by=c("ID", "EG", "year"), all.x=TRUE)
。但是我想:如果a中的年份在B中找不到,则a的值应与b匹配,其中年份B已关闭d(在冲突舍入中)。这意味着在结束时, Dataframe 中的所有“ID”、“EG”、“年份”列应具有来自关闭d的年份B的测试值。
1条答案
按热度按时间yizd12fk1#
在
dplyr
的开发版本中,我们可以将join_by
与closest
一起使用