查找紧靠给定值集的值,然后从另一个变量返回条目

时间:2019-03-01 12:51:16

标签: r

我有两个数据框:

a <- c(10, 20, 30)
c <- c(1, 50, 100)

df1 <- data.frame(cbind(a, b, c))

x <- c(80, 30, 15)
z <- c(10, 46, 99)

df2 <- data.frame(cbind(x, y, z))

我想在c中找到紧接z中值的值,然后在a中返回等效值。

因此将z匹配到c会给我位置:1、1、2,我想从a(即10、10、20)中输出这些位置

编辑:对于z中的每个值,我想找到c中位于其下方的值的位置,然后根据该位置在a中返回值

1 个答案:

答案 0 :(得分:2)

您可以将outer与比较<一起使用。然后,colSums应该添加TRUE,并给出答案,前提是df1是在c上订购的,即

colSums(outer(df1$c, df2$z, `<`))
#[1] 1 1 2

df1$a[colSums(outer(df1$c, df2$z, `<`))]
#[1] 10 10 20