我需要找到一种方法来匹配和组合相似的行,其中不同列的 ID 相匹配。
这就是我的桌子的样子:
第一ID | 第二ID | 更多数据 |
---|---|---|
123ABC | 456防御 | ... |
456防御 | 789GHI | ... |
349UYH | 286IWD | ... |
我正在尝试查找 FirstID 和 SecondID 匹配的行。
例如,第 1 行的 SecondID (456DEF) 和第 2 行的 FirstID 相同,因此它们是相连的。
我的计划是制作第三列来连接这两行,最终输出如下:
来源ID | 第一ID | 第二ID | 更多数据 |
---|---|---|---|
123ABC | 123ABC | 456防御 | ... |
123ABC | 456防御 | 789GHI | ... |
349UYH | 349UYH | 286IWD | ... |
在上表中,Source ID 列中前两行的值为 123ABC,因为第一行的 FirstID 未连接到另一行的 SecondID,而第二行则连接到。对于第二行,我们找到未连接的原始 FirstID,并使用该值作为源 ID。
让我知道这是否有意义!
我的伪代码如下:
if (SecondID is found in FirstID):
x: FirstID where SecondID = this row's FirstID
update SourceID: x
else: SourceID: this row's FirstID
如果您将来提供意见将会很有帮助。 你可以做这样的事情:
q)input:([] FirstID:`123ABC`456DEF`349UYH; SecondID:`456DEF`789GHI`286IWD)
q)input
FirstID SecondID
----------------
123ABC 456DEF
456DEF 789GHI
349UYH 286IWD
q)update SourceId:FirstID^(input[`SecondID]!input`FirstID)FirstID from input
FirstID SecondID SourceId
-------------------------
123ABC 456DEF 123ABC
456DEF 789GHI 123ABC
349UYH 286IWD 349UYH