JSL如何通过表达式重命名列名你好,
我有一个由摘要统计生成的列名称列表。 我想删除所有前缀和后缀,只保留我想要的部分。我该如何在 JSL 中执行此操作?
列
占总数的%(UP9019-01) => UP9019-01
占总数的百分比(UP9019-02) => UP9019-02
占总数的%(UP9019-03) => UP9019-03
……
高级统计建模自动化和脚本编写回复:JSL如何通过表达式重命名列名嗨,纳尔逊,
如果您不使用子组,则统计列名称将起作用。 就我而言,我需要使用子组。 总计的百分比仍将附加到子组回复:JSL如何通过表达式重命名列名下面是一个使用“统计列名格式(“column”)”选项的简单示例,显示以原始列名命名的总列的百分比

names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
Data Table( "big class" ) << Summary(
Group( :age ),
Name( "% of Total" )(:height),
Name( "% of Total" )(:weight),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);回复:JSL如何通过表达式重命名列名嗨,纳尔逊,
感谢您的提示。 第一个选项指定静态列名称格式(“列”)不起作用。 它仍然带有表中总计的百分比。
您建议的 JSL 选项完美运行!
ColList = dt_source << get column names( string );
//% of Total(UP9019-01)
For( i = 4, i <= N Items( ColList ), i++,
Column( i ) << set name( Word( 2, Column( i ) << get name, "()" ) )
);回复:JSL如何通过表达式重命名列名我处理这个问题的第一种方法是让摘要平台名称输出列与输入列名称相同。这是通过指定来完成的
统计列名格式("column")
这可以从摘要平台输入对话框中选择
如果您不能执行此操作,那么所需要做的就是使用此 JSL 重置列名称
:Name("% of Total(UP9010-01)") << set name( "UP9019-01: );
如果这需要自动化而不是硬编码,并且该列是数据表中的第一列,则可以使用此 JSL 进行处理
column(1) << set name(word(2,column(1)<<GET name=""></GET>