JSL 使用变量列的最大值创建新的汇总表你好,
一段时间以来,我一直很喜欢在这些讨论页面上阅读和寻找解决方案,但现在一直在摸索着弄清楚这一点。
我有一个数据表,它给出了可变数量的列,由机器自动生成,其中前 14 列始终是相同的识别信息。 其他列(从 15 开始)是数值连续数据,其中列名将始终不同。
问题是我正在尝试自动创建一个汇总表,该汇总表将通过其识别信息对数据进行分组,并且每个数据列都有一列 Max 数据。
对于不同数量的数据列和不同的列名,是否可以遍历每一列? 比如一个for循环把所有的Max值都放到汇总表中? 我无法为每次拉取的不同列名的所有列 b/c 命名,但可以肯定地说,第 14 列之后的每一列都需要找到的最大值。
这是我一直在尝试编辑的 JSL 脚本,但在生成 Max 列时遇到了死胡同。
sumdt = table << Summary(
Group(:NAME,:ID),
(Max(Column(table, 15:154)), // having issue on this line
Output Table Name("Summary Max Values")
);
感谢您对我的问题的任何投入!
脚本编写回复:JSL 使用变量列的最大值创建新的汇总表下面是使用 Big Class 示例数据表执行所需操作的示例。
Names default to here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNamesList = dt << get column names( continuous, string );
sumdt = dt << summary(
Group( :Sex, :Age ),
max( colNamesList ),
Output Table( "Summary Max Values"),
Link to Original Data Table( 0 )
);

回复:JSL 使用变量列的最大值创建新的汇总表谢谢@txnelson ,
这部分解决了我的问题。
我的原始数据表有我不希望分析最大值的日期列,基本上遇到了我不想计算前 14 列的最大值而不管它们的数据类型的问题。
有没有办法忽略前 14 列,或者创建一个新表会更容易,该表先删除不需要的列,然后再将其传递给汇总表?
谢谢,
格洛丽亚
回复:JSL 使用变量列的最大值创建新的汇总表创建 colNamesList 后,您可以使用 Remove From() 函数删除列表中的特定行,然后将列表缩减为您想要的列,您可以使用它来生成汇总表。
有关 Remove From() 函数的定义和示例,请参阅脚本索引条目