JMP 脚本:为列中每个指定值创建新列大家好,
我试图为 |90= 之后的每个数值创建新列,并将这些列标记为 |90 之前的字符串,因此 pX 或其他任何内容都在它之前。请参阅下面所附的照片作为示例。

因此,在第一行中,我想获取“p1|90=”后面的 93,并创建一个标记为“p1”的新列。我想对任何和所有“pX|90=”后面的每个数字执行此操作。该 pX 也可能是 sX 或 rX 或 pXa/b/c/...等等。所以我也想为这些值创建新的列。每行的数据点数量变化很大,从一 (1) 个 pX|90= 值到 15 个不同的 pX|90= 值,可能某些值带有 sX|90= 或 rX|90=。
我正在使用 Word 函数来获取 pX|00 数据值。现在我只想获取 90,并尝试使用我之前使用的脚本,但发现它没有获取我想要的所有值。

这是针对数百行,很快就会达到数千行,因此手动执行此操作是站不住脚的。
在这里使用什么函数才有意义?
我是 JMP 脚本编写的新手,愿意学习和倾听任何想法。谢谢你!
高级统计建模自动化和脚本编写消费者和市场研究大规模定制质量和工艺工程视窗回复:JMP 脚本:列中每个指定值的新列不知道这是否是最好的方法,但它相当简单。
Names default to here(1);
dt= New Table( "splitting bunches",
Add Rows( 1 ),
New Column( "Fun",
Character,
"Nominal",
Set Values( {"<P>p1|00=51;p1|90=32;p2|00=48;p2|90=90;",
"</P><P>p1|00=47;p1|90=60;p4|00=73;p4|90=49;"
} )
),
);
dt << New Column("just_delim",
// this is just getting rid of that beginning part as I image you don't want it.
character, formula(substitute(:Fun, "</P><P>", ""))
);
// split it on ; into however many columns
dt << Text To Columns(
delimiter( ";" ),
columns( :just_delim )
);
// get the columns you just made
cols_to_stack = (dt << get Column References)[3::ncols(dt)];
// stack them now
dt_stack = dt << Stack(
columns( cols_to_stack ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ), output table("stacked")
);
// same thing
dt_stack << Text To Columns(
delimiter( "|=" ),
columns( :Data )
);
dt_stack:"Data 1"n<<SET name=""></SET></P>回复:JMP 脚本:列中每个指定值的新列为我工作,这很有意义。 谢谢你! 我很高兴你发现这很“有趣”。