【问题标题】:dplyr to bring in both the columns on which join is madedplyr 引入进行连接的两个列
【发布时间】:2018-11-27 20:29:45
【问题描述】:

假设我有这两个数据集,每个都有一列,分别是 FirstName 和 Name。 我想应用左连接并查看结果,使得结果表显示为 FirstName (from left table) , Name(from right table),而左连接 FirstName = Name。

我遇到的问题是 left_join 的最终结果是一个单独的列,即 FirstName,而我也想查看加入的列。知道如何实现吗?

t1 <- data.frame(FirstName= c('a','b','c','d'))
t2 <- data.frame(Name= c('a','b','c'))

library(dplyr)
t1%>%
  left_join(t2, c('FirstName'  = 'Name'))

如您所见,上面的结果是一个单独的列,即 Firstname。它会自动省略另一个表中的 Name 列,这就是我不希望它做的事情。

【问题讨论】:

  • 如果我理解正确,你的要求对我来说并没有真正意义:在左连接之后,根据定义,两列将是相同的。也许这个问题比这个简化的例子更多?

标签: r dplyr


【解决方案1】:

您可以在加入前创建名称列的副本

t1 <- data.frame(FirstName= c('a','b','c','d'), stringsAsFactors = FALSE)
t2 <- data.frame(Name= c('a','b','c'), stringsAsFactors = FALSE)

library(dplyr)
t1 %>%
  left_join(mutate(t2, Name2 = Name), c('FirstName'  = 'Name2'))
#  FirstName Name
#1         a    a
#2         b    b
#3         c    c
#4         d <NA>

【讨论】:

    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2021-12-18
    • 2019-07-29
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多