是否使用公差按另一个数据帧筛选R数据帧?

是否使用公差按另一个数据帧筛选R数据帧?,r,dplyr,R,Dplyr,我有两个不同长度的数据帧(A和B)。对于a中的给定值,我想知道B中是否有任何值在+/-0.3的公差范围内。了解该值在B中的位置也很有用 A<-c(1:10) B<-c(2.2,15,1.8,4.9,20,14,8.2,33,9.8,41,16) A我们可以在 library(purrr) map(A, ~ B[between(B, .x - 0.3, .x + 0.3)]) %>% flatten_dbl 这里有一个想法结果是一个列表。如果没有任何匹配项,则

我有两个不同长度的数据帧(A和B)。对于a中的给定值,我想知道B中是否有任何值在+/-0.3的公差范围内。了解该值在B中的位置也很有用

A<-c(1:10)
B<-c(2.2,15,1.8,4.9,20,14,8.2,33,9.8,41,16)


A我们可以在

library(purrr)
map(A, ~  B[between(B, .x - 0.3, .x + 0.3)]) %>% 
     flatten_dbl

这里有一个想法<代码>结果是一个列表。如果没有任何匹配项,则
结果中元素的长度为0。否则,
result
将在B中记录符合要求的索引

A <- 1:10
B <- c(2.2,15,1.8,4.9,20,14,8.2,33,9.8,41,16)

difference <- list()

for (i in 1:length(A)){
  difference[[i]] <- B - A[i]
}

result <- lapply(difference, function(x) which(x < 0.3 & x > -0.3))

A在base R中,我们可以使用
sapply

unlist(sapply(A, function(x) B[B >= (x- 0.3) & B <= (x + 0.3)]))
#[1] 2.2 1.8 4.9 8.2 9.8

unlist(sapply(A,函数(x)B[B>=(x-0.3)&B是否可以对两列中的一对值执行此操作?即,对于列AX和AY的同一行中的值,查找BX和BY的值(在同一行中)在+/-0.3范围内。我有两个x/y坐标的数据框,我试图找到彼此接近的数据框@akrun@forestsam我相信你的问题有一个解决方案。你可以用示例数据集发布一个新问题。人们可能会帮助你。