クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っているこんにちは、
JMP バージョン 16 を使用しています。
クロスタブ表からデータを転送しています。小数点以下3桁に丸めるように設定しています。その後、データは文字列に保存され、その文字列を使って結果を表に出力します。以下のコードをご覧ください。
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
meandiff = Round( crossTab[1, 2] , 3 );
lowerCL = Round( crossTab[3, 2] , 3 );
upperCL = Round( crossTab[4, 2] , 3 );<BR /><BR /> // Create the Difference in mean and CL string<BR />Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || " ; " || Char( upperCL ) || "]" );
報告に関して2つの質問があります。
1. 小数点以下 3 桁を報告するように指定されているのに、たとえば 0.019 が 0.020 ではなく 0.02 として報告されるのはなぜですか?
2. 以前はうまく動作していたのですが、今は動作しなくなりました。0.0015という値が0.002ではなく0.001に切り上げられてしまいます。なぜこのような結果になるのか、またどうすれば修正できるのかご存知ですか?通常の切り上げルール(4桁以下は切り捨て、5桁以上は切り上げ)を維持したいのですが。
基本的なデータ分析とモデリングRe: クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っています1. JMPで余分なゼロを表示したい場合は、形式を指定して文字列に変換する必要があると思います。
Format(1.100, "Fixed Dec", 10, 3)
2. 0.0015 を丸めているのですか?他の値ではなく、実際に計算されている行列の値は何ですか?プラットフォーム上では 0.0015 と表示されているかもしれませんが、実際には 0.00149 のようなより正確な値である可能性が高いため、0.0015 に丸められます。
Re: クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っていますこんにちは、Jarmoさん
返信ありがとうございます!
1. 試してみます。ありがとうございます。
2. クロス集計に移動し、2列目の行1、行3、行4(Mean[i]-Mean[j]、Lower CL Dif、Upper CL Dif)を取得します。
下の写真をご覧ください。

平均差はこの行に表示されます
meandiff = Round( crossTab[1, 2] , 3 );
本来は小数点以下3桁に丸めるべきで、通常の丸めルールに従って丸められるはずです。ただ、正しく丸められておらず、何が間違っているのかわかりません。
Re: クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っています実際に表示されている値を確認しましたか?JMPレポートに表示される値は、おそらく既に四捨五入された値です。これはJMP18で行われます。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Drug.jmp");
obj = Fit Model(
Y(:y),
Effects(:Drug, :x),
Personality(Standard Least Squares),
Emphasis(Effect Leverage),
<< Run(:Drug << {LSMeans Student's t(.05, Ordered Differences Report(1))})
);
m = Report(obj)["Response y","Drug","LSMeans Differences Student's t",CrosstabBox(1)] << get as matrix;
show(m);

Re: クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っています次の行を実行できませんでした
m = Report(obj)[ :Result , :Person , "LSMeans Differences Student's t" , CrosstabBox(1)] << get as matrix;
そこで、代わりに順序付き差異レポートを開きました。すると、差の合計は0.0015000で、二重に四捨五入されていないことがわかります。

Re: クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っていますマトリックスを抽出するためのスクリプトはすでにありました
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
クロスタブを印刷して値を確認するだけです
Re: クロス集計テーブルから新しいテーブルに転送するときに丸めが間違っていますああ、ありがとうございます!結果を見てみると、小数点以下3桁ではなく2桁に丸めると丸め方が変わるのが分かりました。
クロスタブ = [0 0.00149999999999987、0 0.000298142396959379、0 0.000835697341910363、0 0.00216430265808938、 -0.00149999999999987 0、0.000298142396959379 0、-0.00216430265808938 0、-0.000835697341910363 0];
ご協力ありがとうございました:)