在一張表中保存限值的控製圖腳本(所有數字列)你好,
我正在嘗試使用多個控製圖(數據表的所有數字列)生成一個窗口/報告。 到目前為止,我能夠生成此報告。 但我無法將所有限制保存在一個數據表中。 有誰能夠幫助我?
按照我的代碼
dt = Current Data Table ();
//Deselection von allen Spalten
cols = dt << get column names();
For(i = 1, i <= N Col(dt), i++,
cols[i] << set selected (0)
);
//Selection
cc = dt << Get Column Names( numeric );
ncols = N Items( cc );
For( i = 1, i <= ncols, i++,
cc[i] << Set Selected( 1 )
);
nw1 = New Window ("Control Charts");
For( i = 1, i <= ncols, i++,
test = cc[i];
conc = Control Chart(
Group Size( 1 ),
KSigma( 3 ),
Chart Col(as Column (test) ),
Chart Type( Moving Range )
); nw1 << append (Report(conc)); conc << Close Window);
nw1 << in New Table;回复:在一個表中保存限制的控製圖腳本(所有數字列). . .這是使用列屬性的替代方法:
NamesDefaultToHere(1);
// Make a table with some random data
dt = NewTable("Charts");
n = 5;
dt << addMultipleColumns("C_", n, Numeric);
dt << addRows(20);
for(c=1, c<=n, c++, Column(dt, "C_"||Char(c)) << formula(RandomNormal(0, 1)));
dt << runFormulas;
// Put the charts into a single window
nw1 = New Window ("Control Charts",
For( c = 1, c <= n, c++,
thisCC = dt << Control Chart(
Group Size( 1 ),
KSigma( 3 ),
Chart Col(Column(dt, "C_"||Char(c))),
Chart Type( Moving Range )
);
// Save the computed limits as a column property
thisCC << inColumn;
);
);
// Make a blank limits table
dt2 = NewTable("Limts",
NewColumn("Column", Character),
NewColumn("Avg", Numeric),
NewColumn("LCL", Numeric),
NewColumn("UCL", Numeric),
<< addRows(n)
);
// Populate the limits table by parsing the saved column property
For( c = 1, c <= n, c++,
clExpr = Column(dt, "C_"||Char(c)) << getProperty("Control Limits");
Column(dt2, "Column")[c] = "C_"||Char(c);
Column(dt2, "Avg")[c] = Arg(Arg(Arg(clExpr, 1), 1), 1);
Column(dt2, "LCL")[c] = Arg(Arg(Arg(clExpr, 1), 2), 1);
Column(dt2, "UCL")[c] = Arg(Arg(Arg(clExpr, 1), 3), 1);
);
我懷疑這可能更簡單控製圖生成器,但我沒有檢查(你可能有理由使用“舊”平台)。
回复:在一個表中保存限制的控製圖腳本(所有數字列)非常感謝。 它工作得很好。 它會節省很多時間:)
回复:在一個表中保存限制的控製圖腳本(所有數字列)這是我對您的代碼的解決方案。 我註釋掉了我沒有看到對這個特定問題有任何作用的代碼
Names Default To Here( 1 );
dt = Current Data Table();
//Deselection von allen Spalten
/*cols = dt << get column names();
For( i = 1, i <= N Col( dt ), i++,
cols[i] << set selected( 0 )
);*/
//Selection
cc = dt << Get Column Names( numeric );
/*ncols = N Items( cc );
For( i = 1, i <= ncols, i++,
cc[i] << Set Selected( 1 )
);*/
nw1 = New Window( "Control Charts" );
For( i = 1, i <= N Items( cc ), i++,
Current Data Table( dt ); // Should not be required, but script would not work without it
conc = dt << Control Chart( Group Size( 1 ), KSigma( 3 ), Chart Col( As Column( cc[i] ) ), Chart Type( Moving Range ) );
concDT = conc << in New Table;
concDT << New Column( "Column", character, set each value( Char( cc[i] ) ) );
Column( concDT, Char( cc[i] ) ) << set name( "Value" );
If( i == 1,
baseDT = concDT,
baseDT << concatenate( concDT, append to first table( 1 ) );
Close( concDT, nosave );
);
nw1 << append( Report( conc ) );
conc << Close Window;
);