将字母的位置显示为数字你好,
我想计算一个字母在文本中的位置并显示为一个数字。 我只有 X 作为字母,并且希望数字位于不同的列中。 空格也应该计算在内。
文本:
×××
输出:
12 4 9
我怎样才能做到这一点?
感谢您的回复
数据表脚本回复:将字母的位置显示为数字非常感谢,两种解决方案都运行良好。
回复:将字母的位置显示为数字你好,
作为@jthi回复,您可以将上面的脚本复制并粘贴到公式编辑器中。我已将其作为公式列包含在下表中(复制此脚本并将其粘贴到“新建脚本”窗口中以重新创建表格),并将表格也保存到这篇文章中。
New Table( "Show position of letter example table",
Add Rows( 1 ),
New Column( "text",
Character,
"Nominal",
Set Values( {"XX X X"} ),
Set Display Width( 87 )
),
New Column( "Output",
Character,
"Nominal",
Formula(
X_pos = {};
For( i = 1, i <= Length( :text ), i++,
If( Substr( :text, i, 1 ) == "X",
X_pos[i] = Char( i ),
X_pos[i] = " "
)
);
Concat Items( X_pos, "" );
),
Set Selected,
Set Display Width( 107 )
)
)回复:将字母的位置显示为数字您应该能够创建新列并复制和粘贴@哈德利迈尔斯直接到公式编辑器的解决方案(如果需要,使用 Contains Item() 修复):

编辑:这期望列被命名为“文本”
回复:将字母的位置显示为数字感谢您提供此解决方案。 我还没有使用过 JMP 脚本。 有没有一种简单的方法可以将它添加到我的表的脚本中? 或者在公式编辑器中构建相同的表达式?
回复:将字母的位置显示为数字对我来说,当没有给出第二个参数时,Concat Items() 似乎会增加额外的空间,因此您可能不得不使用 Concat Items( X_pos , "")回复:将字母的位置显示为数字你好,
使用此脚本作为公式列应该可以完成这项工作:
X_pos = {};
For( i = 1, i <= Length( :text ), i++,
If( Substr( :text, i, 1 ) == "X",
X_pos[i] = Char( i ),
X_pos[i] = " "
)
);
Concat Items( X_pos );