有没有办法执行excludes个匹配的LEFT_JOIN?

A<-sample(1:100, 10)
B<-sample(1:100, 10)
C<-sample(1:100, 10)
year<-sample(1000:2000,10)

x<-tibble(year,A,B)%>%
  mutate(B=B*12)
y<-tibble(year,B,C)

我想要x+y的总和是not in x

EDIT:所有数据集的年份都相同,但我已经转换了x中的B列,以便它不再与集合y中的B列匹配.

我想以一个框架来结束:X(年,A,B,C),其中B是最初在x中的那个.

我try 了Coalesce(x,y),但无济于事,有谁有关于这方面的线索吗? 我是在try 做一些非常愚蠢的事情,还是忽略了一些细节?

我知道我可以删除不需要y的列,或者我可以通过="Year"加入,然后删除带有.y后缀的列,但希望有更好的方法来实现这一点!

推荐答案

如果我理解正确的话,一个可能的解决方案是用powerjoin package来做power_left_join(),如果有任何冲突,就从x中‘ Select ’值,例如

library(tidyverse)
# install.packages("powerjoin")
library(powerjoin)

set.seed(42)

A <- sample(1:100, 10)
B <- sample(1:100, 10)
C <- sample(1:100, 10)
year <- sample(1000:2000, 10)

y <- tibble(year, B, C)
x <- tibble(year, A, B)

# change the first "B" value in "x"
x$B[1] <- 1000

x %>%
  power_left_join(y, by = "year", conflict = ~.x)
#> # A tibble: 10 × 4
#>     year     A     C     B
#>    <int> <int> <int> <dbl>
#>  1  1313    49    34  1000
#>  2  1647    65    92    20
#>  3  1291    25     3    26
#>  4  1835    74    58     3
#>  5  1981    18    42    41
#>  6  1145   100    24    89
#>  7  1620    47    30    27
#>  8  1347    24    43    36
#>  9  1196    71    15     5
#> 10  1515    89    22    84

然而,删除".y"列并重命名".x"列的另一种方法并不那么"困难"(这就是我个人使用的).

x %>%
  left_join(y, by = "year") %>%
  select(-ends_with(".y")) %>%
  rename_with(~gsub(".x", "", .x))
#> # A tibble: 10 × 4
#>     year     A     B     C
#>    <int> <int> <dbl> <int>
#>  1  1313    49  1000    34
#>  2  1647    65    20    92
#>  3  1291    25    26     3
#>  4  1835    74     3    58
#>  5  1981    18    41    42
#>  6  1145   100    89    24
#>  7  1620    47    27    30
#>  8  1347    24    36    43
#>  9  1196    71     5    15
#> 10  1515    89    84    22

创建于2023-07-06年第reprex v2.0.2

R相关问答推荐

在集合群体模型中计算时间步依赖的速率/参数

逐行替代引用前一行的for循环

使用map()内的公式()创建多个公式

了解.groups的目的= dØr的摘要功能中的删除

Select 与特定列中最大值对应的数据帧行

有没有一种方法可以在子包上使用‘library()’中的‘exclub’参数?

使用scale_x_continuous复制ggplot 2中的离散x轴

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

如何使下一个按钮只出现在Rshiny 的一段时间后?""

如何在Chart_Series()中更改轴值的 colored颜色 ?

如果某些列全部为NA,则更改列

如何写商,水平线,在一个单元格的表在R

为了网络分析目的,将数据框转换为长格式列联表

如何在R forestplot中为多条垂直线分配唯一的 colored颜色 ?

R中的哈密顿滤波

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

您是否可以将组添加到堆叠的柱状图

如何根据R中其他变量的类别汇总值?

R仅当存在列时才发生变异

条形图中的条形图没有try 赋予它们的 colored颜色