【发布时间】:2025-11-30 06:55:02
【问题描述】:
我有两个数据列表,我喜欢将一个变量与另一个变量匹配,并在一个区间内匹配一个。我通过一个循环做到了这一点,但这需要很长时间。我正在尝试学习 R 并熟悉 lapply 家族,并想知道我是否可以在这里以某种方式使用它?或者是否有其他解决方案。
我的解决方案:
x <- data.frame( A = c(1,2,3,4,5,6,2,3,4,5,5), B = c(67,49,49,59,68,91,67,48,49,67,91))
y <- data.frame( A = c(2,6,3,4,5,6,2,5,4,7,5), B = c(67,50,49,59,50,91,67,50,49,68,91))
ko <- data.frame(c())
for(i in 1:11){
wi <- which(y[,1] == x[i,1] & y[,2] <= (x[i,2] +10) & y[,2] >= (x[i,2] - 10))
t <- y[wi,]
ko <- rbind(ko, t)
}
在ko 中返回所需的结果。
【问题讨论】:
-
rbind调用可能是这里的最大热门。预先分配ko并逐行填写会更快。
标签: r