【发布时间】:2018-11-15 09:46:48
【问题描述】:
我有两个数据框。
第一列有两列:x 是水深,y 是每个深度的温度。
第二个也有两列,x 也是水深,但与第一个表中的深度不同。第二列z 是盐度。
我想通过x 加入这两个表,方法是将z 添加到第一个表中。我已经学会了如何在 tidyr 中使用“键”来连接表,但这只有在键相同的情况下才有效。这两个表中的x 不一样。
我要做的是将表2中的深度x与表1中的深度匹配在10%以内(即匹配表2中的1.1x到表1中的1.0x)。
我该怎么做?
Table 1
| x | y |
|---|----|
| 1 | 25 |
| 2 | 26 |
| 3 | 27 |
Table 2
| x | z |
|------|----|
| 1.1 | 30 |
| 2.05 | 35 |
| 3.8 | 34 |
我想要
Table 1
| x | y | z |
|---|----|----|
| 1 | 25 | 30 |
| 2 | 26 | 35 |
| 3 | 27 | NA |
前两个“x”值在 Table 2 中匹配(绝对差在 10% 以内)。第三个没有。
【问题讨论】:
-
你见过
fuzzyjoin包吗? -
刚刚检查过。似乎是对的。谢谢!有这么多包要跟进!
-
@JianghuiDu 我认为
fuzzyjoin在这种情况下对你没有多大帮助。最好提供一个可重现的示例,以便提供适当的解决方案。 -
我已经添加了示例。
标签: r join left-join fuzzy-comparison