そこで、YbyX プロットを作成し、Tukey T 検定を実行し、p 値と組み合わせた dt を作成し、p 値に基づいて選択および除外するスクリプトを作成しました。
現在、ソース データ テーブルに保存するために dt << New Script() 関数内に埋め込まれています。
何が起こっているのかわかりませんが、p 値を選択するセクションに到達すると、次のエラーが発生します。
dt1 << select where("p-Value"n > 0.05);名前未解決: 'p-Value' のアクセスまたは評価の行 1 の p-Value、"p-Value"n /*###*/
奇妙なことに、これを空白の新しいスクリプト ウィンドウにコピーして手動で実行すると、機能します。 何が起こっているのか、なぜなのかわかりません。 何か案は?
//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 に宣言します。