semi_join 本质上是关联的吗?

问题描述 投票:0回答:1

semi_join
的定义来看,我认为它本质上是结合的?不知道是不是那个不热衷于理解的人...

library(dplyr)

set.seed(100)
x1 <- tibble(
  id = floor(runif(100, 10, 1000))
)


set.seed(20)

x2 <- tibble(
  id = floor(runif(100, 10, 1000))
)


x1 |> semi_join(x2) |> arrange(id)
x2 |> semi_join(x1) |> arrange(id)

dplyr
1个回答
0
投票

反转

semi_join
(旨在返回 x 中与 y 匹配的所有行)可能不会给出与此处所示相同的结果:

library(dplyr)

df1 <- tibble(x = c(1, 2, 3, 2))
df2 <- tibble(x = c(2, 3, 4, 4))

semi_join(df1, df2) # 3 rows from df1 match df2
#> Joining with `by = join_by(x)`
#> # A tibble: 3 × 1
#>       x
#>   <dbl>
#> 1     2
#> 2     3
#> 3     2

semi_join(df2, df1) # 2 rows from df2 match df1
#> Joining with `by = join_by(x)`
#> # A tibble: 2 × 1
#>       x
#>   <dbl>
#> 1     2
#> 2     3

创建于 2024-04-24,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.