【问题标题】:Merging two tables based on a column (partial match or comma separated column)?基于列(部分匹配或逗号分隔的列)合并两个表?
【发布时间】:2017-05-02 10:09:51
【问题描述】:

我有两个表,它们的共享列不完全匹配(大写字符的差异或逗号、空格和...等某些字符的存在)。如何根据这两个表的共享列(在 R、Knime、Excel-power 查询或 sql 中)合并这两个表?

【问题讨论】:

    标签: mysql r excel knime


    【解决方案1】:

    在您的示例 Result 表中,不清楚行的位置

    gene1 | go3 | 14
    

    来自,因为在 Table2 中没有 go3 的条目。我假设这是一个错误,您的意思是 Table2 包含该行

    go3 | 14
    

    如果正确,以下是在 KNIME 中执行此操作的方法:

    这两个 Table Creator 节点只是创建了两个具有列名的表,如您的示例中所示 - 将它们替换为您的实际数据源。 Cell Splitter 使用逗号作为分隔符拆分列GoesUnpivoting 节点配置如下:

    Joiner 像这样:

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

    此工作流程应处理逗号之间的空格,但我认为您还提到了大写字母的差异 - 如果您需要处理这些,请将每个表传递给 Case Converter 节点以使它们保持一致.

    透视和反透视很难理解(恕我直言——尤其是考虑到它们的 KNIME 节点的神秘描述),但非常强大。我建议花点时间玩弄这些节点,弄清楚它们是如何工作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多