根据列(部分匹配或逗号分隔列)合并两个表?

我有两个表格,他们的共享列不完全匹配(在资本结构的差异或像逗号,空间和一些文字的存在…)。 我怎样才能合并这两个表基于他们的共享列(在R,Knime,Excel功率查询或SQL)?

示例表和结果

在您的示例结果表中,不清楚该行在哪里

gene1 | go3 | 14 

来自,因为表2中没有go3的入口。 我假设这是一个错误,你的意思是表2包括行

 go3 | 14 

如果这是正确的,下面是如何在KNIME中做到这一点:

KNIME工作流程

两个表格创build器节点只是创build两个列名称列表(如您的示例所示) – 用您的实际数据源replace这些表格。 单元拆分拆分列使用逗号作为分隔符。 Unpivoting节点是这样configuration的:

取消配置

乔伊纳这样:

配置文件

所有其他设置保留为默认值。 如果需要,可以添加节点来重新sorting和过滤Joiner输出中的列。 请注意,您将看到不同的Goes_Arr[n]列,具体取决于Goes有多less个不同的值 – Enforce exclusionEnforce inclusion设置确保Unpivoting正确处理。

这个工作stream应该处理逗号之间的空格,但是我认为你也提到大写字母的区别 – 如果你需要处理这些差异,通过一个Case Converter节点来传递每个表格,使它们保持一致。

旋转和不透明是难以理解的(恕我直言 – 尤其是考虑到其KNIME节点的神秘描述),但非常强大。 我build议花点时间和这些节点一起玩弄搞清楚它们是如何工作的。