回复:當使用 << 設置每個值來替換列中的值時,統計函數(例如 Col Mean)可能會在數據表的第一行出現錯誤這需要轉到 JMP 技術支持
回覆:當使用 << Set Each Value 取代列中的值時,統計函數(例如 Col Mean)可能會在資料表的第一行上發生錯誤在為值列印輸出添加一些額外的格式後,Col ...聚合切換到非常慢的模式,從這裡已經知道:
我如何使用帶有“where-quot”的“Col-Maximum-Formula”/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參數
等等......
這解釋了為什麼執行會隨著行的長度呈二次方縮放,[比較如何使用 Col-Maximum-Formula .... ]
搞笑:附加評價和月亮不一樣-不看就不存在
也許 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 .
回复:當使用 << 設置每個值來替換列中的值時,統計函數(例如 Col Mean)可能在數據表的第一行出現錯誤當同時使用同一列作為計算的輸入和輸出時,我有點著急。
極端情況:如果校... 聚合就像 Lag() 一樣逐行運行,輸出就像毛毛蟲沿著行移動,逐行改變聚合輸出。
關於速度,這很酷上校...聚合做得更好。
關於問題的預防:添加一個備用臨時行的聰明主意。 或者,可以使用臨時列來存儲值,對嗎?
關於:為什麼?
[慢版輸入後編輯]
嗯...
將打印函數添加到 GroupBy 參數有助於查看發生了什麼......
事實上,價值和通過...分組函數被評估兩次。
首先獲取要與第 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價值功能被評估 ?
一條線分組行 # ... : 哪個通過...分組功能評價?
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 .
回复:當使用 << 設置每個值來替換列中的值時,統計函數(例如 Col Mean)可能在數據表的第一行出現錯誤它擁有 (TS-00036082) 並支持將其轉發給 JMP 開發。 這篇文章的目的只是讓這一點更加明顯。
編輯:當我接受這個作為解決方案時,我將添加一個似乎可行的解決方法:將額外的行添加到數據表中作為第一行,使用 << 設置每個值來更新值,然後刪除額外的空行
// 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 的 bug 出現在我面前
當使用 << Set Each Value 替換列中的值時,統計函數(例如 Col Mean)可能會在資料表的第一行上出現錯誤在嘗試讓我的解決方案運作時,有沒有更快的循環方法?我遇到了一個問題,其中我的資料的第一行看起來不正確(實際上問題是針對整個第一組)。
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 支援人員已向開發團隊提交了錯誤報告,但我想讓它更加明顯。我可能需要檢查一些舊腳本,發現在使用統計 col 函數時,沒有任何地方使用 << Set Each Value() 來替換現有值(通常我在列建立期間使用它)。</P><LINGO-LABS id="lingo-labs-613593" slang="en-US" mode="UPDATE"><LINGO-LABEL>品質和工藝工程</LINGO-LABEL></LINGO-LABS>回覆:當使用 << Set Each Value 取代列中的值時,統計函數(例如 Col Mean)可能會在資料表的第一行上發生錯誤
@hogi寫道:
在為值列印輸出添加一些額外的格式後,Col ...聚合切換到非常慢的模式,從這裡已經知道:
我如何使用帶有“where-quot”的“Col-Maximum-Formula”/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.