[英]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.