そのため、YbyX プロットを作成し、Tukey T-Test を実行し、p-Value で結合 dt を作成し、p-Value に基づいて選択および除外するスクリプトがあります。
現在、それを dt << New Script() 関数内に埋め込んで、ソース データ テーブルに保存しています。
何が起こっているのかわかりませんが、p 値を選択するセクションに移動すると、次のエラーが表示されます。
dt1 << select where("p-Value"n > 0.05);名前未解決: 'p-Value' 、 "p-Value"n /*###*/ のアクセスまたは評価における行 1 の p-Value
奇妙なことに、これを空白の新しいスクリプト ウィンドウにコピーして手動で実行すると、動作します。 何が起こっているのか、なぜなのかはわかりません。 何か案は?
//need to force it to use a certain file name AND force SPC script to label dt appropriately
dtSPC = current data table();
dtSPC << set name( "SPC Data");
/*plotting a basic Fit YbyX just to get pValues. Formatting and style done on final plot*/
ow1 = Oneway(
Y( :MEAN ),
X( :TOOL_PROCESS_CHAMBER ),
By(Chart_ID,),
//All pairs Tukey HSD test
All Pairs(
1,
Confidence Quantile( 0 ),
Difference Matrix( 0 ),
LSD Threshold Matrix( 0 ),
Connecting Letters Report( 0 ),
Ordered Differences Report( 1 )
),
SendToReport(
//x-axis formatting
Dispatch(
{},
"2",
ScaleBox,
{Label Row(
{Label Orientation( "Angled" ), Lower Frame( 1 ),
Show Major Grid( 1 ), Tick Mark Style( "Long Divider" )}
)
}
),
//row legend by chamber
Dispatch(
{},
"Oneway Plot",
FrameBox,
{Marker Size( 6 ), Marker Drawing Mode( "Normal" ),
Row Legend(
:Chamber,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)
}
)
)
);
/***********************************/
/***********************************/
// Create the combined data table of Summary Statistics
dt1 = Report( ow1[1] )["Means Comparisons", "Comparisons for all pairs using Tukey-Kramer HSD","Ordered Differences Report"][Table Box( 1 )] << Make Combined Data Table;
dt1 = current data table();
dt1 << set name( "pValue PairWise by Channel Tukey");
dt1:Chart_ID << Data type( Numeric ) << Set Modeling Type( Nominal );
/***********************************/
/**********************************/
//Screen and show only the Channel_ID's w/ a Tukey pair pVal<0.05
//exclude all high pVal rows, leaving only low pVal Channels. Does not work in reverse.
dt1 << select where("p-Value"n > 0.05);
dt1 << exclude;
dt1 << clear select;
//create a list of remaining Unique Chart_ID
summarize(dt1, uniqueVals=by(:Chart_ID));
//Convert to numeric
For( i = 1, i <= N Items(uniqueVals ), i++,
uniqueVals[i] = Num(uniqueVals[i] )
);
//extra, just to look at the data
//dtUnique = New Table( "uniqueVals less 0.05");
//dtUnique << New Column( "Chart_ID", Values(uniqueVals));
//select on SPC source data just the channels w/ low pVals
//need to choose SPC data table
dtSPC << clear select;
dtSPC << select where( contains( uniqueVals, :Chart_ID));
//invert and exclude, leaving only low pVal Chart_ID's
dtSPC << invert row selection << exclude;
dtSPC << clear select;
//close old stuff
close(dt1);
ow1 << close window;
58行目の参照をから変更してみてください
dt1 = Current Data Table();
に
current data table( dt1 );
違いは、最初のステートメントでは、dt1の値を現在のデータテーブルに設定しているため、JMPが目的のテーブルを指していない可能性があることです。2番目のステートメントは、dt1を現在のデータテーブルとして設定することをJMPに宣言します。