我有两个数据框:
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中返回值
答案 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