【发布时间】:2016-01-20 16:34:35
【问题描述】:
如何在 R 中完成复杂的(即不是等值连接)?
例如,假设我们有以下数据:
B <- data.frame(m = 1:100, x = rnorm(100))
A <- data.frame(id = 1:200, m0 = sample(B$m, 200, replace = TRUE))
A$m1 <- A$m0 + sample(1:20, nrow(A), replace = TRUE)
然后在 SQL 中可以做这样的事情:
SELECT A.id, SUM(B.x)
FROM A
JOIN B ON B.m BETWEEN A.m0 AND A.m1
GROUP BY A.id
如何在 R 中做类似的事情(除了使用循环)?
【问题讨论】:
-
您可能正在寻找类似this 的东西(重叠连接)。
-
Gabor 的回答 stackoverflow.com/a/24480301/239838(以及该问题中的其他回答)提供了多种方法。