Re: 列の値を置き換えるために << Set Each Value を使用すると、統計関数 (Col Mean など) がデータ テーブルの最初の行でバグる可能性がありますこれはJMPテクニカルサポートに行く必要があります
Re: 統計関数 (たとえば、Col Mean) は、<< Set Each Value を使用して列の値を置き換えると、データ テーブルの最初の行でバグが発生する可能性があります。値のプリントアウトにいくつかの追加の書式設定を追加すると、Col ... 集計は、ここからすでにわかっている非常に遅いモードに切り替わります。
Col Maximum 式を quot-where-quot とともに使用する方法/mp/578576/highlight/true#M78599
newCol=New Column("new");
newCol << Set Each Value(Col Mean(write("-value, row # ",row(),"\!n");:Vals, write("groupby row # ",row()," ",newCol[row()],"\!n");:A));
各行ごとに
-すべての行が評価されます: 最初に値、次にGroupBy引数
- 次に、特定の行のGroupBy引数が(再度)評価されます。
一致する値が収集され、集計されます。
次に次の行から始まります。
- すべての行が評価されます(再度):最初に値、次にGroupBy引数
- 次の行のGroupBy引数が(再度)評価されます
などなど…
これは、実行が行の長さの 2 乗に比例する理由を説明しています ( Col Maximum 式の使用方法などを参照)。
面白い:追加の評価は月とは異なります - 見なければそこにはありません
おそらく、Jmp の誰かがより詳細な見解を提供してくれるでしょう...
スローバージョンの完全なプリントアウト:
もっと見る...-value, row # 1
groupby row # 1 .
-value, row # 2
groupby row # 2 .
-value, row # 3
groupby row # 3 .
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 1 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 .
-value, row # 3
groupby row # 3 .
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 2 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 .
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 3 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 4 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 5 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 2.5
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 6 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 2.5
-value, row # 6
groupby row # 6 2.5
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 7 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 2.5
-value, row # 6
groupby row # 6 2.5
-value, row # 7
groupby row # 7 2.5
-value, row # 8
groupby row # 8 .
groupby row # 8 .
Re: 列の値を置き換えるために << Set Each Value を使用すると、統計関数 (Col Mean など) がデータ テーブルの最初の行でバグる可能性があります計算の入出力に同じ列を同時に使うとちょっと不安です。
極端な場合: Ifコル... 集計は、Lag() のように行ごとに機能します。出力は、行に沿って移動する毛虫のようになり、行ごとに集計出力が変化します。
速度に関しては、それはクールですコル... アグリゲーションの方がはるかに優れています。
問題の防止について: 予備の一時行を追加するという巧妙なアイデア。 または、一時的な列を使用して値を格納することもできますよね?
関係:なぜ?
[遅いバージョンの入力後に編集]
うーん...
GroupBy 引数に印刷関数を追加すると、何が起こっているかを確認するのに役立ちます...
確かに、価値とグループ化関数は 2 回評価されます。
最初に行 1 の GroupBy 引数と比較する値を取得し、次に結果を行 1 に書き込んだ後に再度取得します。
newCol=New Column("new");
newCol << Set Each Value(Col Mean(Print(row());:Vals,<BR /> write("\!n groupby row # ",row()," ",newCol[row()],"\!n");:A));
数字だけの行: which価値機能は評価されましたか?
との行groupby 行 # ... : どれのグループ化機能は評価されましたか?
1
groupby row # 1 .
2
groupby row # 2 .
3
groupby row # 3 .
4
groupby row # 4 .
5
groupby row # 5 .
6
groupby row # 6 .
7
groupby row # 7 .
8
groupby row # 8 .
groupby row # 1 .
1
groupby row # 1 2.5
2
groupby row # 2 .
3
groupby row # 3 .
4
groupby row # 4 .
5
groupby row # 5 .
6
groupby row # 6 .
7
groupby row # 7 .
8
groupby row # 8 .
groupby row # 2 .
groupby row # 3 .
groupby row # 4 .
groupby row # 5 .
groupby row # 6 .
groupby row # 7 .
groupby row # 8 .
Re: 列の値を置き換えるために << Set Each Value を使用すると、統計関数 (Col Mean など) がデータ テーブルの最初の行でバグる可能性がありますこれには (TS-00036082) があり、サポートにより JMP 開発に転送されました。 この投稿の目的は、これをもう少し見やすくすることでした。
編集:これを解決策として受け入れたので、うまくいくように思われる回避策を1つ追加します:データテーブルに余分な行を最初の行として追加し、<<を使用して各値を設定して値を更新し、その余分な空の行を削除します
// workaround
dt << Add Row(1, At Start);
Column(dt, "Column 1 1") << Set Each Value(Col Mean(:Column 1 1, :A));
dt << Delete Rows(1);
JMP16.2 と JMP17.0 にバグがありました。
統計関数(たとえば、Col Mean)は、<< Set Each Value を使用して列の値を置き換えると、データ テーブルの最初の行でバグが発生する可能性があります。「ループするより速い方法はありますか?」という質問に対するソリューションを機能させようとしているときに、データの最初の行が正しく表示されないという問題に遭遇しました (実際、問題は最初のグループ全体にありました)。
Names Default To Here(1);
dt = New Table("Untitled 5",
Add Rows(8),
Compress File When Saved(1),
New Column("Vals", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("Column 1 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("A", Character, "Nominal", Set Values({"A", "A", "A", "A", "B", "B", "B", "B"})),
New Column("B", Character, "Nominal", Formula(Col Mean(:Vals, :A)))
);
dt << New Column("Column 3", Numeric, Continuous, <<SET each="" value=""></SET>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/51122iF900862836EE33DB/jthi_1-1678901605470.png" role="button" title="jthi_1-1678901605470.png" alt="jthi_1-1678901605470.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P>
<P>私には、Col Mean が最初の行に対して計算され、その後、<STRONG>グループ</STRONG>の残りの部分の平均がこの既に置き換えられた値を使用して計算されているように見えます。回避策として、データ テーブルの最初の行として空の行を追加し、<< 各値の設定を使用し、最初の行を削除します。</P>
<P> </P>
<P>この問題に関するチケット (TS-00036082) はすでにオープンしており、JMP サポートは開発チームにバグ レポートを送信しましたが、私はこれをもっと目立たせたいと考えました。統計列関数を使用するときに、<< Set Each Value() を使用して既存の値を置き換えている場所がないことを確認するために、古いスクリプトの一部をチェックする必要があるかもしれません (通常は列の作成時に使用します)。</P><LINGO-LABS id="lingo-labs-613593" slang="en-US" mode="UPDATE"><LINGO-LABEL>品質およびプロセスエンジニアリング</LINGO-LABEL></LINGO-LABS>Re: 統計関数 (たとえば、Col Mean) は、<< Set Each Value を使用して列の値を置き換えると、データ テーブルの最初の行でバグが発生する可能性があります。
@hogi は書きました:
値のプリントアウトにいくつかの追加の書式設定を追加すると、Col ... 集計は、ここからすでにわかっている非常に遅いモードに切り替わります。
Col Maximum 式を quot-where-quot とともに使用する方法/mp/578576/highlight/true#M78599
Jmp 17.2 以降のバージョン (<=18.1.1) で動作を確認しました。問題は解決しました。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Clear Select << Select Rows( Index( 5, 40 ) ) <<DELETE rows=""></DELETE>
gives:
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_0-1734384257364.png" style="width: 174px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_0-1734384257364.png" style="width: 174px;"><img src="https://us.v-cdn.net/6038925/uploads/images/71281i524773A5E5A75986/hogi_0-1734384257364.png" width="174" height="408" role="button" title="hogi_0-1734384257364.png" alt="hogi_0-1734384257364.png" /></span></SPAN>
so, the value and GroupBy values are calculated for every row - then the GroupBy values are calculated again for every row.<BR />That's it.