当前位置: 首页 > 知识库问答 >
问题:

dplyr 能否在多列或复合键上联接?

逄兴昌
2023-03-14

我意识到< code > DP lyr 3.0版允许您加入不同的变量:

left_join(x, y, by = c(“a” = “b”)x.ay.b 匹配

然而,有可能加入变量的组合吗?或者我必须事先添加一个组合键吗?

像这样的:

left_join(x, y, by = c(“a c” = “b d”) 以将 [x.a 和 x.c] 与 [y.by.d] 的串联相匹配

共有1个答案

仉洲
2023-03-14

正在更新以使用tibble()

您可以将长度大于1的命名向量传递给left_join()by参数:

library(dplyr)

d1 <- tibble(
  x = letters[1:3],
  y = LETTERS[1:3],
  a = rnorm(3)
  )

d2 <- tibble(
  x2 = letters[3:1],
  y2 = LETTERS[3:1],
  b = rnorm(3)
  )

left_join(d1, d2, by = c("x" = "x2", "y" = "y2"))
 类似资料:
  • 问题内容: 我整个上午都在搜索,但是大多数合并示例仅基于一个键,而在多个键上却找不到任何东西。 pid = 111,sid = 6,eid = 123的值在x和y中都匹配,然后合并为一条记录。如果它们不匹配,只需将其原样带过来。 我想要的最终结果: 问题答案: 这是从元组中重新锁定:

  • 问题内容: 是否可以在普通的JPA或JPA + Hibernate扩展中声明复合键,而复合键的元素是一个序列? 这是我的复合课程: 我已经提供的值,,和。我想构造一个像下面这样的实体: 当我调用)时,我希望生成并插入集成。 这可能吗?如果是这样,简单的方法是什么?(我不想使用应用程序提供的密钥或本机sql)。 问题答案: 我相信使用普通的JPA是不可能的。

  • 问题内容: 在使用Linq to SQL时,对多对多关系表使用多列(复合)主键是否有益? 还是应该仅将身份列添加为非群集主键并适当地索引FK列? 问题答案: 不是LINQ问题。如果您的架构需要它们,请使用它们。如果您不这样做,请不要。无论哪种方式,LINQ都能很好地处理您的架构。 LINQ to SQL不能很好处理的一个领域是用于连接多对多关系的多列/键映射表,但是我不会说这严格属于您的问题解决的

  • 问题内容: 这是我的模型: 每个书的编号从每位作者的1开始并向上递增。因此,我们将有John Grisham撰写的1,2,3本书,George Martin撰写的1..5本书,等等。 我是否可以设置一个唯一的约束条件,以确保我们不会有两本书的作者相同?与相似,但约束仅适用于?的复合 问题答案: 用途:

  • 我有一个dataframe和要删除dataframe中的列列表。让我们使用数据集作为示例。我希望删除和,只使用剩余的列。如何使用或从包中执行此操作? drop.cols中的错误:参数类型无效 我觉得我错过了一些明显的东西,因为这些看起来像是一个相当有用的操作,应该已经存在了。在Github上,有人发布了一个类似的问题,Hadley说要使用“负面索引”。那是(我想)我试过的,但没有效果。有什么建议吗

  • 问题内容: 我有一张桌子,就是PK。当我插入行时,将有重复的键,并且我需要总结三个统计信息。我在Java中对PreparedStatement使用以下查询: 是否有更简洁的查询来实现?因为我简化了查询,所以那里有十多个统计信息。 问题答案: