JSL 从另一列字符脚本中的组件创建新列假设我有输入列并想根据它的内容创建一个新列。 输入列将始终有 8 个斜杠,如下所示。 但是,有时它们之间会有不同长度的实际数据。 因此... 我想在一个新列中指出何时存在带有简单“Y”的数据,而所有其他地方在大量行中都是“N”。
输入列 Desired_Output
//////// NNNNNNNNN
//////// NNNNNNNNN
////a/b/// NNNNYYNNN
一个//////// YNNNNNNNN
数据表脚本回复:JSL 从另一列字符脚本中的组件创建新列非常感谢! 以及所有其他提供帮助的人。 Formula2 成功了。
回复:JSL 从另一列字符脚本中的组件创建新列但是,要在每种情况下返回 8 个字符,您可以使用另一个公式,请参阅该表中的公式 2:
New Table( "Test 3",
Add Rows( 4 ),
New Column( "Input Column",
Character,
"Nominal",
Set Values( {"////////", "////////", "////aaaa/b///", "aBCD////////"} )
),
New Column( "Formula",
Character,
"Nominal",
Formula(
Regex(
Regex(
Regex( :Input Column, "[a-z]+", "A", GLOBALREPLACE, IGNORECASE ),
"[^/]",
"Y",
GLOBALREPLACE
),
"/",
"N",
GLOBALREPLACE
)
),
Set Display Width( 246 )
),
New Column( "Formula2",
Character,
"None",
Formula(
item_lst = Words( Substitute( :Input Column, "/", "/;" ), ";" );
result_str = "";
For( i = 1, i <= N Items( item_lst ), i++,
If( item_lst[i] == "/",
result_str = result_str || "N",
result_str = result_str || "Y"
)
);
result_str;
),
Set Selected,
Set Display Width( 394 )
)
)回复:JSL 从另一列字符脚本中的组件创建新列您可以添加另一个正则表达式,将多个字符替换为一个:
Names Default To Here( 1 );
dt = New Table( "Test",
Add Rows( 4 ),
New Column( "Input Column", Character, "Nominal", Set Values( {"////////", "////////", "////aaaa/b///", "aBCD////////"} ) ),
New Column( "Formula",
Character,
"Nominal",
Formula( Regex( Regex( Regex( :Input Column, "[a-z]+", "A", GLOBALREPLACE, IGNORECASE ), "[^/]", "Y", GLOBALREPLACE ), "/", "N", GLOBALREPLACE ) ),
Set Selected,
Set Display Width( 246 )
)
);回复:JSL 从另一列字符脚本中的组件创建新列谢谢回复。 不熟悉此功能,但它很有用/有帮助。 这会处理斜杠,但会为字符串中的每个字母提供一个“Y”。 我只想为斜线之间的所有字符添加一个“Y”。回复:JSL 从另一列字符脚本中的组件创建新列您可以在公式中使用双正则表达式:
Regex(Regex(:Input Column, "[^/]", "Y", GLOBALREPLACE), "/", "N", GLOBALREPLACE)
一个正则表达式将不是“/”的所有内容替换为“Y”,另一个正则表达式将“/”替换为“N”。