【发布时间】:2021-12-16 14:34:01
【问题描述】:
我有两个看起来像这样的数据框
data1<-data.frame(name=c("Jessica_Smith","John_Smith","John_Smith") ,
max_year=c(2000,1989,2005),
min_year=c(1990,1989,2001))
data2<-data.frame(name=c("Jessica_Smith","John_Smith","John_Smith") ,
year_of_birth=c(1995,1989,2002),unique_id=c("aby37","nf93","fnd34"))
我想合并数据框,这样对于 data1 中的每个人我都有一个 unique_id。如果可能的话,我还想为那些没有重叠的人获得最接近的整数匹配。为了澄清,我不能只在 name 上 left_join,因为有些条目具有相同的名称但不同的出生日期。
我对 R 比较陌生,所以我什至不知道从哪里开始。
非常感谢!
【问题讨论】:
-
为什么不只是
left_join -
当一个df有一个范围而另一个只有一个数字时,你可以使用left_join吗?
-
如果
year_of_birth不在max_year和min_year的范围内怎么办?那么你想删除那一行吗? -
如果您需要为那些不适合其中一个区间的人获得最接近的匹配,您确实应该提供实际需要的样本数据。就目前而言,这两种答案都不会产生这种行为。
-
此外,我怀疑仅一年(而不是姓名)加入会引起很多问题。
标签: r data.table left-join tidyverse fuzzyjoin