Join 使用dplyr连接多个数据帧时保留其他变量

Join 使用dplyr连接多个数据帧时保留其他变量,join,dplyr,Join,Dplyr,我必须组合来自多个数据帧的给定变量gfr的值。我有两个数据集,x1,其中包含gfr和date以及应该携带的附加列(实际数据集中约50列),以及名为x2的数据集中的gfr和date的附加值 库(dplyr) x1#A tible:3 x 4 #>id gfr日期附加信息 #> #> 1 1 90 2019-01-01 12 #> 2 2 80 2019-02-01 13 #>

我必须组合来自多个数据帧的给定变量
gfr
的值。我有两个数据集,
x1
,其中包含
gfr
date
以及应该携带的附加列(实际数据集中约50列),以及名为
x2
的数据集中的
gfr
date
的附加值

库(dplyr)
x1#A tible:3 x 4
#>id gfr日期附加信息
#>                     
#> 1     1    90 2019-01-01              12
#> 2     2    80 2019-02-01              13
#> 3     3   120 2019-03-01              14
使用
full_join
(1)添加不在
x1
中的附加ID,以及(2)不保留所有观察的
附加信息

full_连接(x1,x2)
#>加入,由=c(“id”、“gfr”、“日期”)
#>#tibble:7 x 4
#>id gfr日期附加信息
#>                     
#> 1     1    90 2019-01-01              12
#> 2     2    80 2019-02-01              13
#> 3     3   120 2019-03-01              14
#>4145 2018-01-01不适用
#>5260 2019-03-01北美
#>6402018-02-01北美
#>7560 2018-03-01不适用
我想要的数据帧如下所示:

通缉犯%
分组依据(id)%>%
变异(附加信息=第一个(附加信息))%>%
在(vars(c(gfr,日期)),保留所有=真)%>%
筛选器(id%在%x1$id中)%%>%
安排(id、日期)
#>加入,由=c(“id”、“gfr”、“日期”)
#>#A tibble:5 x 4
#>#组:id[3]
#>id gfr日期附加信息
#>                     
#> 1     1    45 2018-01-01              12
#> 2     1    90 2019-01-01              12
#> 3     2    80 2019-02-01              13
#> 4     2    60 2019-03-01              13
#> 5     3   120 2019-03-01              14
但我相信有一个更简单的解决办法。提前谢谢

由(v0.3.0)于2019-08-15创建的

在对dplyr进行了更多的“摆弄”之后,我发现了一些代码,这些代码可以工作并且易于阅读,但仍然有点笨拙。我将在这里发布,这样任何人都可以使用这种方法,直到其他人有更好的答案:

库(dplyr)
x1%
不同的()
#>加入,由=c(“id”、“gfr”、“日期”)
然后使用一个简单的
左连接

left_连接(基、梳)
#>通过=“id”加入
#>#A tibble:5 x 4
#>id附加信息gfr日期
#>                     
#> 1     1              12    90 2019-01-01
#> 2     1              12    45 2018-01-01
#> 3     2              13    80 2019-02-01
#> 4     2              13    60 2019-03-01
#> 5     3              14   120 2019-03-01
由(v0.3.0)于2019-08-2015年创建

使用dplyr有没有更简单的方法?

在对dplyr进行了更多的“摆弄”之后,我找到了一些代码,这些代码可以工作并且易于阅读,但仍然有点笨拙。我将在这里发布,这样任何人都可以使用这种方法,直到其他人有更好的答案:

库(dplyr)
x1%
不同的()
#>加入,由=c(“id”、“gfr”、“日期”)
然后使用一个简单的
左连接

left_连接(基、梳)
#>通过=“id”加入
#>#A tibble:5 x 4
#>id附加信息gfr日期
#>                     
#> 1     1              12    90 2019-01-01
#> 2     1              12    45 2018-01-01
#> 3     2              13    80 2019-02-01
#> 4     2              13    60 2019-03-01
#> 5     3              14   120 2019-03-01
由(v0.3.0)于2019-08-2015年创建

使用dplyr有更简单的方法吗