【问题标题】:Approximate de-duplication近似重复数据删除
【发布时间】:2019-11-24 05:41:19
【问题描述】:

假设我有一个这样的数据集:

我需要检查可能的重复项。在这里,第 2 行和第 3 行是可疑的重复项。我知道字符串距离方法以及数字变量的近似匹配。但是这两种方法是否结合在一起?最终,我正在寻找一种可以在 R 中实现的方法。

【问题讨论】:

  • 第二行和第三行是否可能重复,因为它们的时间戳非常接近,它们的字符串相似,或两者兼而有之?
  • 两者。实际上,在示例中,我还使freq 完全匹配。

标签: r join duplicates fuzzy-comparison record-linkage


【解决方案1】:

我认为没有直接的方法可以解决这个问题。您可以分别对待每一列:datetime 为时间戳接近度,string 为字符串接近度(Levenshtein 距离),freq 为数字距离。然后,您可以以递增的方式单独对每一列的每一行进行排名。在所有三个指标中排名靠前的行号(最小差异)是更好的重复候选者。然后,您可以选择考虑重复案例的阈值。

【讨论】:

  • 谢谢。这将是我的默认方法。我希望存在类似于包fuzzyjoin 的东西,允许根据变量混合字符串距离和数字距离。
  • 当你说时间戳接近时,你有什么特别的想法吗?我正打算治疗它as.numeric(datetime)
  • 您可以使用POSIXlt 表示法并使用difftime 函数,如difftime(time1,time2, units="sec"),它将返回以秒为单位的时差。 edit 我看到as.numeric() 将时间转换为秒,从而返回相同的结果。不过,使用POSIXit,您可以选择输出为分钟、小时...
猜你喜欢
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2020-07-21
  • 2022-01-03
  • 2021-06-10
  • 2020-04-22
  • 2011-01-09
相关资源
最近更新 更多