Alteryx:从字符串中的范围创建多行
Posted
技术标签:
【中文标题】Alteryx:从字符串中的范围创建多行【英文标题】:Alteryx: Create several rows from a range in a string 【发布时间】:2021-11-09 00:06:59 【问题描述】:我正在寻找一种将 Alteryx 用于以下数据整理任务的方法。
我有一张这样的桌子:
Var1 | Var2 |
---|---|
A | 1-3 |
B | 0-2 |
我希望这样:
我有一张这样的桌子:
Var1 | Var2 |
---|---|
A | 1 |
A | 2 |
A | 3 |
B | 0 |
B | 1 |
B | 2 |
所以我试图“打开”Var2
中的数字列表,并为该范围内的每个可能数字创建一行。
【问题讨论】:
您能否使用 GenerateRows 工具生成从 0 到大于您的 max(Var2) 的某个数字的整数...然后将其加入您的表(笛卡尔积),然后过滤 GeneratedRow >= Var1和 【参考方案1】:我扩展了@johnjps111 的答案:使用 GenerateRows 工具,但对于Initialization Expression
,使用起始值。对于Condition Expression
,强制新列(例如“RowCount”)为 RowCount
这种方式不需要加入!
【讨论】:
【参考方案2】:为了更清楚,初始化表达式应该是这样的:
(regex_replace([var2],"(\d+).*","$1"))
条件表达式类似于:
RowCount <= tonumber(regex_replace([var2],".*(\d+)$","$1"))
【讨论】:
以上是关于Alteryx:从字符串中的范围创建多行的主要内容,如果未能解决你的问题,请参考以下文章