你好 @txnelson ,
我有一个近十万列的数据集,标记为“ PG1_1s_xxxxx “ 要么 ” PG1_1US_xxxx ”。我打算将这些列分别堆叠到两个不同的表中,然后继续进行分析。这是我为执行此操作而编写的脚本示例。
dt = current data table();
colList = dt << Get Column Names( Numeric, "Continuous" );
For( i = 1, i <= N Items( colList ), i++,
If( Contains( colList[i], "PG1_1S_" ) &
Contains( colList[i], "MED" )
Column( colList[i] ) << Set Selected( 1 )
)
);
dt << Stack(
column(dt << get selected columns()),
Source Label Column("Label"),
Stacked Data Column("RBER"),
Name("Non-stacked Columns")(Keep(::LOT, :SLOT, :ROW, :COL, :JOB_NAME)),
Output table("PG1_1S"));
Data table("PG1_1S") << Graph Builder(
Variables( X( :V ), Y( :RBER ), Group X( :Deck ), Overlay( :JOB_NAME ) ),
Elements( Line( X, Y, Legend( 6 ) ) ),
Local Data Filter( Add Filter( columns( :Type ) ) ),
SendToReport(
Dispatch(
{},
"RBER",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12, 0 ),
Min( 0.0000000027082467925 ), Max( 1.02000000009481 ), Inc( 1 ),
Minor Ticks( 0 )}
)
)
);
<BR /><STRONG>// Creating the second stacked table.</STRONG>
colList = dt << Get Column Names( Numeric, "Continuous" );
For( i = 1, i <= N Items( colList ), i++,
If( Contains( colList[i], "PG1_1US_" ) &
Contains( colList[i], "MED" )
Column( colList[i] ) << Set Selected( 1 )
)
);
dt << Stack(
column(dt << get selected columns()),
Source Label Column("Label"),
Stacked Data Column("RBER"),
Name("Non-stacked Columns")(Keep(::LOT, :SLOT, :ROW, :COL, :JOB_NAME)),
Output table("PG1_1US"));
Data table("PG1_1US") << Graph Builder(
Variables( X( :V ), Y( :RBER ), Group X( :Deck ), Overlay( :JOB_NAME ) ),
Elements( Line( X, Y, Legend( 6 ) ) ),
Local Data Filter( Add Filter( columns( :Type ) ) ),
SendToReport(
Dispatch(
{},
"RBER",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12, 0 ),
Min( 0.0000000027082467925 ), Max( 1.02000000009481 ), Inc( 1 ),
Minor Ticks( 0 )}
)
)
);
当我运行此脚本时,它将仅创建第一个堆叠表“ PG1_1S”,而不创建第二个堆叠表。如何修改它以创建到不同的堆叠表。
谢谢
抱歉,我的问题不够清楚。之后,我会按照您的要求遵守这些准则。感谢您指出。
即时而言,我看到的是,您没有在选择要在堆栈中使用的列的任何一段代码之前清除列选择。 可以很好地打赌,第一次堆叠没有选择任何列,但是在第二次堆叠中,从第一个堆叠中选择的所有列都保留了,而第二个选择设置只是添加到了从首先堆叠。