繁体   English   中英

根据第二个小标题中的值过滤小标题

[英]filtering a tibble based on values in a second tibble

给定以下小标题:

df1<- tibble(A = c(1:10), B=sample(c(21:30)))
df2<-tibble(A = c(1,2,4,6,7))

我想创建 df3,其中包含在 df2$A 中找到 df1$A 的所有行。 我试过了

df3<- df1 %>% filter(A == df2%A))

但这仅返回 2 行,因为它匹配行,而不是搜索值。 我的真实数据集是几千行。

提前致谢!

library(tidyverse)
df1<- tibble(A = c(1:10), B=sample(c(21:30)))
df2<-tibble(A = c(1,2,4,6,7))
df1 %>% 
  filter(df1$A %in% df2$A)

正确的方法是使用semi_join()

例如,

library(tidyverse)
set.seed(123)
df1 <- tibble(A = c(1:10), B = sample(c(21:30)))
df2 <- tibble(A = c(1, 2, 4, 6, 7))

df3 <- semi_join(df1, df2, by = "A")
df3
#> # A tibble: 5 x 2
#>       A     B
#>   <int> <int>
#> 1     1    23
#> 2     2    30
#> 3     4    28
#> 4     6    29
#> 5     7    21

代表 package (v0.3.0) 于 2020 年 5 月 6 日创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM