Spotfire:根据另一个表中不完全匹配的列转换列

问题描述 投票:0回答:1

我觉得我是从 Excel 的思维方式来解决这个问题的,但我就是想不通。我找不到以前类似的问题,但他的问题一定很常见,所以我一定错过了一些非常基本的东西。

我有一张表,其中一列包含文件的文件夹位置。在文件夹位置内有一个包含公司用户 ID 的文件夹,该文件夹可能包含子文件夹,并且该文件夹的路径可能会有很大差异,例如:

文件夹
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS123456
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS456789
C:\Users\Alice\Desktop\ MS123456 \问题
C:\Users\Banana\Downloads\Files\ Temp-999999已修复
\usny-abcd-efgh\Informatica\ipe\SrcFiles\BusinessInput\ MS456789

其中粗体文件夹是用户名

我有一个单独的表,其中每个公司用户 ID 都有关联的名称

用户ID 姓名
MS123456 德古拉伯爵
MS456789 杜、史酷比
温度-999999 亚当斯,星期三

我想做的是在 Spotfire 中找到一种方法来链接或转换这两个表,以便在我的文件夹列表中可以清楚地看到用户名,如下所示:

文件夹 姓名
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS123456 德古拉伯爵
C:\Users\JoeSchmoe\UploadDocuments\Users\ MS456789 杜、史酷比
C:\Users\Alice\Desktop\ MS123456 \问题 德古拉伯爵
C:\Users\Banana\Downloads\Files\ Temp-999999已修复 亚当斯,星期三
\usny-abcd-efgh\Informatica\ipe\SrcFiles\BusinessInput\ MS456789 杜、史酷比

我陷入了 Excel 思维模式,我会执行 VLOOKUP 或 XLOOKUP 并匹配文件夹路径中的任何现有用户 ID。

我无法在 Spotfire 中执行此操作,因为在链接两个表之前我无法进行转换,并且我无法链接两个表,因为它无法识别文件夹和用户 ID 是否可以匹配(可以理解) 。文件夹路径的差异使得(至少对于我的小大脑来说)不可能隔离用户 ID,以将文件夹列链接到第二个表中的用户 ID 列。

spotfire
1个回答
0
投票

如果文件夹结构是规则的,那就很容易了。在您的情况下,用户 ID 不一定是文件夹结构中的最后一项。

我可以想到一种不涉及脚本的方法:但它通过完全连接进行。

使用此处的建议来执行两个表的完整外部联接: Spotfire 中两个不同表的交叉联接

-首先创建一个新的计算列,例如cross_join_criterion 在“数据”和“文件夹”表中,并分配一个值(例如 1) -创建一个从“数据”表开始的新表(选择+然后从“其他”中选择:链接副本到分析中的数据表) - 转到此新表的数据画布 - 单击表格右侧的加号,然后选择“添加列” -选择加入“文件夹”表,通过 cross_join_criterion 加入并选择连接类型=完全外部连接

结果包含所有可能的匹配,其中一些不正确。 添加一个计算列,例如对于此查找表达式有效:

Find([UserID],[FOLDER])>0

仅对于正确的连接,这才是 True(除非您有两个相互包含的不同用户 ID)。 如果这太复杂(您仍然需要过滤掉不匹配的内容),我建议使用 Python 或 R 数据函数生成一个新表。

© www.soinside.com 2019 - 2024. All rights reserved.