将每行的值与第一行的值进行比较(限制)您好,我有一行限制,我想将其余行与之进行比较,并突出显示超出该限制的单元格。我该怎么做?
或者如果有人可以告诉我如何选择第一行,那也会有帮助。
这就是我正在尝试的:
dt = Current Data Table();
dt << select where( :"Value_in"n[Row()] > :"Value_in"n[Row()==0]) << Color Cells("Red");提前致谢。
基础数据分析与建模回复:将每行的值与第一行的值进行比较(限制)欢迎来到社区。
下面是我如何处理这个问题的一个例子

names default to here(1);
dt=New Table( "Example",
Add Rows( 100 ),
New Column( "values",
Formula( Random Integer( 50, 100 ) )
),
New Column( "limit",
Numeric,
Set Values(
[90]
)
)
);
dt:values << color cells(green,dt<<GET rows="" where=""> :limit[1]));</GET>
回复:将每行的值与第一行的值进行比较(限制)您可以使用数据表下标从任何行中选择值。此外,无需选择行
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
over_limit = dt << Get Rows Where(:weight > :weight[1]);
:weight << Color Cells("Red", over_limit);回复:将每行的值与第一行的值进行比较(限制)谢谢,我尝试了一些略有不同的方法(因为我需要 :values[0] 单元格来包含限制值),并且成功了。谢谢您的回复!
这是我的代码,顺便说一句,虽然不那么优雅,但对于我想要比较的每一列,我都有多个副本:
::dt = Current Data Table();
For( ::i = 2, ::i <= N Row( ::dt ), ::i++,
If(:"colname_(unit)"n[::i] > :"colname_(unit)"n[1],
:"colname_(unit)"n << Color Cells("Red", ::i);
);
); 回复:将每行的值与第一行的值进行比较(限制)关于您的回复和数据表布局的 2 条评论。
- 与使用 Get Rows Where() 相比,使用 For() 循环效率非常低
- 将 JMP 数据表当做 Excel 数据表使用是有问题的。JMP 数据表是为分析而设计的。因此,它是基于列的,而不是像 Ex cel那样基于单元格。您在表中设置的限制会迫使用户必须围绕唯一行进行编程。处理诸如限制之类的项目的典型方法是将它们放在单独的数据表中,或将它们保存为列属性。JMP 有一个 Spec Limit 列属性,它可能正是您可以使用的,如果没有,那么您可以创建一个新的列属性并将其放在其中。