JMP Scripting Noob:如何根据两列的过滤数据输入新列?大家好,
我喜欢 JMP,因为它是图形构建工具,所以我才刚刚开始涉足它的脚本部分。 有人可以帮我处理这个请求吗?
我有两个列。 一个用于 X 坐标,一个用于 Y 坐标。 我想要做的只是创建一个新的列,它将根据 X 和 Y 坐标列出右上/左上/右下/左下(LL)...
所以例如...
如果 0<5 且 0<5,则标记为 LL
如果 0<5 且 5<10,则标记为 UL
如果 5<10 且 0<5,则标记为 LR
如果 5<10 且 5<10,则标记为 UR
我很迷茫,任何帮助将不胜感激:)

数据表脚本回复:JMP 脚本新手:如何根据两列的过滤数据输入新列?这可以通过在数据表中查找哪一行具有不同的最小值和最大值组合来轻松完成。
names default to here( 1 );
dt = New Table( "Sample",
Add Rows( 4 ),
New Column( "x",
Set Values( [1, 1, 6, 6] )
),
New Column( "y",
Set Values( [1, 6, 1, 6] )
)
);
dt << new column("location", character, formula(
:location[(dt << get rows where(:x==col max(:x) & :y==col max(:y)))[1]]="UR";
:location[(dt << get rows where(:x==col max(:x) & :y==col min(:y)))[1]]="LR";
:location[(dt << get rows where(:x==col min(:x) & :y==col max(:y)))[1]]="UL";
:location[(dt << get rows where(:x==col min(:x) & :y==col min(:y)))[1]]="LR";
));

回复:JMP 脚本新手:如何根据两列的过滤数据输入新列?通过分别检查 X 和 Y 并将它们连接在一起,您可以使用 JMP 中的公式相当简单地完成此操作。
像下面这样的东西应该有效(不是说如果值为 0,5 或值超过 10,它根本不会被分类):
If(0 < :y < 5, "L", 5 < :y < 10, "U") || If(0 < :x < 5, "L", 5 < :x < 10, "R")