KNIME:比较一列是否包含另一列的子集
KNIME: Compare if One Column Contains a subset of another column
在 Knime 中,我试图比较一列中的值是否包含在另一列中。我尝试在规则引擎中使用 "LIKE" 来执行此操作,但无法让通配符与列输入而不是字符串一起使用。例如
For row1 I want to check if column 1, row 1 is within column 2, row 1
For row2 I want to check if column 1, row 2 is within column 2, row 2
赞 "ABC" 包含在 "test ABCtest"
中
规则引擎中的"LIKE"是否只允许硬编码字符串进行比较?实现这一目标的其他想法?感谢您的帮助!
带有 regexMatcher
的 String Manipulation 节点在这里可以提供帮助,尽管结果将是字符串(默认值为 True
/False
),因此进一步的节点例如,如果需要数字(如果不同的字符串,您可以使用 ?
/:
三元运算符,如 == "True" ? "when true" : join("when false it was because '", $columnReference$, "' was not found")
),则将是必需的。
您可以像这样使用regexMatcher
(\Q
/\E
有助于避免将Reference
列中的内容视为正则表达式(除非它包含\E
)) :
regexMatcher($text$, join(".*?\Q", $Reference$, "\E.*+")) == "True" ? "vrai" : "faux"
规则引擎允许使用 LIKE 运算符使用通配符,但不允许将通配符与列结合使用,这意味着以下内容可以正常工作:
$column1$ LIKE "*test*" => "1"
也允许以下内容,但不能正常工作:
$column1$ LIKE "*$column2$*" => "1"
原因是双引号 $ 无法识别,因此您无法从 column2 中获取值。相反,您每次都会得到相同的字符串:"*$column2$*"
这不是您想要的。
此外,您可以在字符串操作或列表达式节点中使用 indexOf()
函数,该函数将 return 来自 column1 的字符串值的第一个位置到 column2 中。如果没有找到,该函数将 return -1。跟随规则引擎节点添加适当的指示。
在 Knime 中,我试图比较一列中的值是否包含在另一列中。我尝试在规则引擎中使用 "LIKE" 来执行此操作,但无法让通配符与列输入而不是字符串一起使用。例如
For row1 I want to check if column 1, row 1 is within column 2, row 1
For row2 I want to check if column 1, row 2 is within column 2, row 2
赞 "ABC" 包含在 "test ABCtest"
中规则引擎中的"LIKE"是否只允许硬编码字符串进行比较?实现这一目标的其他想法?感谢您的帮助!
带有 regexMatcher
的 String Manipulation 节点在这里可以提供帮助,尽管结果将是字符串(默认值为 True
/False
),因此进一步的节点例如,如果需要数字(如果不同的字符串,您可以使用 ?
/:
三元运算符,如 == "True" ? "when true" : join("when false it was because '", $columnReference$, "' was not found")
),则将是必需的。
您可以像这样使用regexMatcher
(\Q
/\E
有助于避免将Reference
列中的内容视为正则表达式(除非它包含\E
)) :
regexMatcher($text$, join(".*?\Q", $Reference$, "\E.*+")) == "True" ? "vrai" : "faux"
规则引擎允许使用 LIKE 运算符使用通配符,但不允许将通配符与列结合使用,这意味着以下内容可以正常工作:
$column1$ LIKE "*test*" => "1"
也允许以下内容,但不能正常工作:
$column1$ LIKE "*$column2$*" => "1"
原因是双引号 $ 无法识别,因此您无法从 column2 中获取值。相反,您每次都会得到相同的字符串:"*$column2$*"
这不是您想要的。
此外,您可以在字符串操作或列表达式节点中使用 indexOf()
函数,该函数将 return 来自 column1 的字符串值的第一个位置到 column2 中。如果没有找到,该函数将 return -1。跟随规则引擎节点添加适当的指示。