比较2个数据框

时间:2018-12-08 13:08:19

标签: r dplyr

DF1:

  a  b
1 1  6
2 2  7
3 3  8
4 4  9
5 5 10

DF2:

  c
1 3
2 8
3 4
4 2
5 9

我想看看DF2的每一行(c列)是否在DF1的a和b之间; 因此,最终的过滤结果将是:

  c
1 3
3 4
5 9

该如何完成?我有一个很长的DF2和一个很短的DF1 我正在尝试此操作,但出现以下错误:

library(tidyverse)
> c %>%
    filter(c>a & c<b)
  

filter_impl(.data,quo)中的错误:结果的长度必须为5,而不是10       另外:警告消息:       在c

1 个答案:

答案 0 :(得分:1)

> library(dplyr)
> df1 <- data.frame (a = c(1,2,3,4,5), b = c(6,7,8,9,10))
> df2 <- data.frame (c = c(3,8,4,2,9))
> 
> df2 %>% filter(c > df1$a & c < df1$b)
  c
1 3
2 4
3 9