r - 使用 R 中另一个表的范围内的表中的点连接
问题描述
假设我有 2 张桌子:
df1:
start end
15 20
22 32
35 52
df2:
point
12
16
17
21
26
31
43
我想加入这两个表,以便我知道哪些点在范围之间:
start end point
15 20 16
15 20 17
22 32 26
22 32 31
35 52 43
我如何在 R 中做到这一点?我知道当 2 个表有开始和结束时加入 2 个表,我可以使用foverlap
,但是当其中一个表只有一个点时,我不知道该怎么做。
解决方案
我们可以用fuzzy_join
library(fuzzyjoin)
fuzzy_inner_join(df1, df2, by = c('start' = 'point', 'end' = 'point'),
match_fun = list(`<=`, `>=`))
# A tibble: 5 x 3
# start end point
# <int> <int> <int>
#1 15 20 16
#2 15 20 17
#3 22 32 26
#4 22 32 31
#5 35 52 43
数据
df1 <- structure(list(start = c(15L, 22L, 35L), end = c(20L, 32L, 52L
)), class = "data.frame", row.names = c(NA, -3L))
df2 <- structure(list(point = c(12L, 16L, 17L, 21L, 26L, 31L, 43L)), class = "data.frame", row.names = c(NA,
-7L))
推荐阅读
- c++ - 访问基本类型数组成员(Int-to-Type 习惯用法)
- serial-port - 如何从 USB 设备向 DJI SDK 发送数据?
- python - 从按钮中选择所有行中的单选按钮单击 GTK+ python, PyGObject
- apache-kafka - 用于重复数据删除的 Kafka 压缩
- node.js - 如何从 api 调用中获取值并将其存储在变量中并更新 dynamodb 记录
- c# - 如何在本地用户存储中存储 Texture/Texture2D 或其他 Unity 对象?
- ios - firestore 云消息 iOS Swift
- android - 为什么谷歌地图在首次启动时不会自动缩放到用户位置?
- html - 使子元素的滚动父元素的全水平宽度
- php - 无法删除数组中的特定项目