基于列(部分匹配或逗号分隔列)合并两个表?
Merging two tables based on a column (partial match or comma separated column)?
我有两个表,它们的共享列不完全匹配(大写字符不同或存在某些字符,如逗号、space 和...)。我如何根据它们的共享列(在 R、Knime、Excel-power 查询或 sql 中)合并这两个表?
在您的示例中 Result table 不清楚
行的位置
gene1 | go3 | 14
来自,因为在Table2中没有go3
的条目。我假设这是一个错误,你的意思是 Table2 包含行
go3 | 14
如果这是正确的,下面是在 KNIME 中执行此操作的方法:
两个 Table Creator 节点只是创建了两个 table 的列名,如您的示例所示 - 用您的实际数据源替换它们. Cell Splitter 使用逗号作为分隔符拆分列 Goes
。 Unpivoting节点配置如下:
和 Joiner 像这样:
所有其他设置均保留为默认设置。如果需要,添加节点以重新排序和过滤 Joiner 输出中的列。请注意,根据 Goes
的不同值的数量,您会看到不同的 Goes_Arr[n]
列 - Enforce exclusion
和 Enforce inclusion
设置可确保 Unpivoting 正确处理此问题。
此工作流程应处理逗号之间的空格,但我认为您还提到了大写字母的差异 - 如果您需要处理这些,请将每个 table 通过 Case Converter节点使它们一致。
透视和反透视很难理解(恕我直言——尤其是考虑到它们的 KNIME 节点的神秘描述)但非常强大。我建议您花些时间试用这些节点,了解它们的工作原理。
我有两个表,它们的共享列不完全匹配(大写字符不同或存在某些字符,如逗号、space 和...)。我如何根据它们的共享列(在 R、Knime、Excel-power 查询或 sql 中)合并这两个表?
在您的示例中 Result table 不清楚
行的位置gene1 | go3 | 14
来自,因为在Table2中没有go3
的条目。我假设这是一个错误,你的意思是 Table2 包含行
go3 | 14
如果这是正确的,下面是在 KNIME 中执行此操作的方法:
两个 Table Creator 节点只是创建了两个 table 的列名,如您的示例所示 - 用您的实际数据源替换它们. Cell Splitter 使用逗号作为分隔符拆分列 Goes
。 Unpivoting节点配置如下:
和 Joiner 像这样:
所有其他设置均保留为默认设置。如果需要,添加节点以重新排序和过滤 Joiner 输出中的列。请注意,根据 Goes
的不同值的数量,您会看到不同的 Goes_Arr[n]
列 - Enforce exclusion
和 Enforce inclusion
设置可确保 Unpivoting 正确处理此问题。
此工作流程应处理逗号之间的空格,但我认为您还提到了大写字母的差异 - 如果您需要处理这些,请将每个 table 通过 Case Converter节点使它们一致。
透视和反透视很难理解(恕我直言——尤其是考虑到它们的 KNIME 节点的神秘描述)但非常强大。我建议您花些时间试用这些节点,了解它们的工作原理。