如何使用 JSL 对同一列中的正值和负值进行分类?根据《心律失常》文档中“权重”栏的数据以及附件中的“标准”文件,得出“级别”栏。
然后,根据“level”列和“class”列,将“V3 QRSTA”列的数据按照以下规则进行分类:
行依据为“级别”,列依据为“类别”,对“V3 QRSTA”列的正值和负值分别进行分类汇总。

以上操作可以用excel及其函数轻松完成,但数据量大时速度较慢。
如果数据量很大,如何使用JMP JSL应该可以更快完成。非常感谢!
这个问题相当复杂。 我制作了几张照片并上传了 2 个文件。
回复:如何使用 JSL 对同一列中的正值和负值进行分类?这不是唯一的方法,但 JMP 是您可以做到的方法之一回复:如何使用 JSL 对同一列中的正值和负值进行分类?好的我明白了。 这是唯一的办法。
谢谢吉姆!

回复:如何使用 JSL 对同一列中的正值和负值进行分类?在数据表中创建一个新的字符列。 如果列 V3 QRSTA 大于 0,则使用公式将列中的值设置为“+”,如果低于零,则将列中的值设置为“-”。 然后执行“表==>摘要”并将新列添加为附加组变量,将“类别”保留为“子组”,将“级别”保留为“权重”列回复:如何使用 JSL 对同一列中的正值和负值进行分类?这是负小计。

谢谢!
回复:如何使用 JSL 对同一列中的正值和负值进行分类?现在我想通过添加权重“level”列和“class”列来分别总结“V3 QRSTA”列的正值和负值。
如何使用 JSL 做到这一点?

计算相关的数据我已经上传到附件中了,谢谢!
回复:如何使用 JSL 对同一列中的正值和负值进行分类?谢谢吉姆!
回复:如何使用 JSL 对同一列中的正值和负值进行分类?我运行了包含 100 万行的示例,花了 17 秒。
回复:如何使用 JSL 对同一列中的正值和负值进行分类?我研究了Jim的代码,明白了正是通过排序,实现了这种快速的计算。
谢谢吉姆!
如果数据达到千万行,则需要等待一段时间。
回复:如何使用 JSL 对同一列中的正值和负值进行分类?以下是进行处理以设置每个原始数据行的等级的一种方法的示例。我将其设置为具有 50,000 个示例数据表,在我使用 4 年的 Window 电脑上大约需要 2 秒来创建示例数据,然后设置每行的等级。
Names Default To Here( 1 );
// Create a sample standards table
dtStandard = New Table( "Standards",
Add Rows( 200 ),
New Column( "standards", formula( Random Integer( 93500, 1000000 ) ) )
);
dtStandard << run formulas;
dtStandard:standards << delete property( "formula" );
dtStandard << sort( by( :standards ), order( ascending ), replace table( 1 ) );
dtStandard << rerun formulas;
dtStandard << New Column( "grades", formula( Row() ) );
dtStandard:grades << delete property( "formula" );
// Create an example table
dt = New Table( "Example",
Add Rows( 50000 ),
New Column( "Raw Data", formula( Random Integer( 93500, 1000000 ) ) )
);
dt << run formulas;
dt:Raw Data << delete property( "formula" );
// Make sure the standards table has the same range as the example table
If( dtStandard:standards[1] > Col Min( dt:raw data ),
dtStandard:standards[1] = Col Min( dt:raw data )
);
If( dtStandard:standards[200] < Col Max( dt:raw data ),
dtStandard:standards[200] = Col Max( dt:raw data )
);
// Set the standard
// The code below is the actual code that performs the setting of the grade
// Create a column to hold the original row positions in the data table
dt << New Column( "OrigRow", formula( Row() ) );
dt:OrigRow << delete property( "formula" );
// Add the new grades column to the Example data
dt << New Column( "grade" );
// Sort the data in order of the raw data
dt << sort( by( :Raw Data ), order( ascending ), replace table( 1 ) );
For( i = 1, i <= N Rows( dt ), i++,
If( i == 1,
lkupRow = Max( dtStandard << get rows where( dtStandard:standards <= dt:Raw Data[i] ) )
);
While( dtStandard:standards[lkupRow] < dt:Raw Data[i], lkupRow = lkupRow + 1 );
dt:grade[i] = dtStandard:grades[lkupRow];
);
// Sort the data back to the original order
dt << sort( by( :OrigRow ), order( ascending ), replace table( 1 ) );
// Delete the origrow column
dt << delete columns( "OrigRow" );
回复:如何使用 JSL 对同一列中的正值和负值进行分类?标准间隔是不规则的。回复:如何使用 JSL 对同一列中的正值和负值进行分类?谢谢吉姆!
了解如何使用 JSL 完成此示例。
<=回复:如何使用 JSL 对同一列中的正值和负值进行分类?感谢您的时间。回复:如何使用 JSL 对同一列中的正值和负值进行分类?请使用这个实际例子,谢谢!
回复:如何使用 JSL 对同一列中的正值和负值进行分类?JMP 具有许多可用于分类和/或分箱的方法和函数。对于您指定的权重分类,我演示的 If() 结构将非常快速且易于实现。如果您能提供有关超过 100 个级别的分类的更多细节,我相信有可用的方法。
回复:如何使用 JSL 对同一列中的正值和负值进行分类?如果您在表格中进行了如上所示的分类,则脚本可以轻松地为必要的 If() 函数创建表达式。 或者您可以在这样的表中使用查找方法。
超过100节课? 它们有意义或有用吗? 此时您可能只想使用原始连续变量。
回复:如何使用 JSL 对同一列中的正值和负值进行分类?谢谢吉姆!
但如果这个等级分类达到100个以上,这样的分类方法代码就比较麻烦了。回复:如何使用 JSL 对同一列中的正值和负值进行分类?这可以在 JMP 公式中轻松处理
If(weight<=30, 1
weight <= 40, 2,
weight <= 50, 3,
etc.
)
回复:如何使用 JSL 对同一列中的正值和负值进行分类?标准见截图: 这一步的操作,我只能使用“IF”的方式。 Excel 有多个函数可以执行此操作。 JSL如何快速做到这一点?非常感谢!
回复:如何使用 JSL 对同一列中的正值和负值进行分类?看来我的项目步骤很多,所以需要分几步完成:
首先解决第一步:如何将“权重”栏除以附属几个等级中的“标准”。

回复:如何使用 JSL 对同一列中的正值和负值进行分类?当我自己做的时候,我在文件 Arrithmia.jmp 中添加了三列:“水平”、“阳性”、“阴性”。
我知道这很愚蠢,但这是我能处理的唯一方法。非常感谢!
回复:如何使用 JSL 对同一列中的正值和负值进行分类?
回复:如何使用 JSL 对同一列中的正值和负值进行分类?dt = Open( "$SAMPLE_DATA/心律失常.jmp" );