分裂不好?假設我有這張表:
| 類別 |
物品 |
等級 |
| A |
1 |
三角洲 |
| A |
2 |
狐步舞 |
| A |
3 |
飯店 |
| B |
1 |
茱麗葉 |
| B |
3 |
五 |
請注意,缺少 Category=B、Item=2。
如果我嘗試使用“拆分依據”=類別和“拆分列”=級別以及“保留全部”來“拆分”此表,它將返回以下內容:
| 物品 |
A |
B |
| 1 |
三角洲 |
茱麗葉 |
| 2 |
狐步舞 |
五 |
| 3 |
飯店 |
|
請注意,在新拆分的表上,它顯示 Item=2,Category=B 是“lima”,但這是不正確的 - 該單元格應該是空白的,“lima”應該在 Item=3,Category=B 下。
這是使用者錯誤,還是 JMP 中的錯誤?
資料混合與清理回覆:堆疊不良?你好@BHarris ,嘗試在群組中使用項目。結果將會如您所期望的。
最好的,
回覆:堆疊不良?是的,這確實有效。
你能解釋一下發生了什麼事嗎?我想了解為什麼集體行動是必要的。
回覆:堆疊不良?當然,不按組進行拆分是按行以文字方式進行的,並且沒有意識到項目缺少類別組件。先查看項目再查看類別,群組強制層級依項目分離每個類別。
來自線上幫助( https://www.jmp.com/support/help/en/18.2/?os=mac&source=application#page/jmp/split-columns-in-data-tables.shtml
團體
當您希望將資料拆分到所選變數的每個群組內時,請指定群組變數。每組結果在輸出表中佔一行。您還必須指定所需的變數、拆分依據和拆分列。
注意:如果您要分組的變數包含不相等的群組或處於隨機順序,則將其指定為群組變數可確保您的資料正確重組,並將任何缺失的值指派到適當的位置。
否則,您必須新增額外的一行並定義類別和項目,但將該行的層級留空。
希望有幫助。
回覆:堆疊不良?我越想越覺得這毫無意義。我不明白為什麼 split 在任何情況下都會表現得那樣——幾乎就像開發人員簡單地嵌套一些循環並希望數據落在正確的位置......
我不知道(a)我是否仍然太笨,無法理解這種行為的根本原因,(b)以這種方式實現是為了提供高性能(在大表上快速拆分),其中輸入是全階乘,並且用戶應該知道正在做出假設,或者(c)這真的只是一個需要提交/修復的錯誤。
(如果是(a),我不會生氣。;) )
回覆:堆疊不良?能詳細闡述你的想法嗎?
我的觀點是相反的:
如果輸入資料結構良好,您可以進行拆分,而無需擔心。
如果輸入資料結構不太好 - 但另外還有一些分組訊息,那麼總是有可能使用這些分組資訊來告訴 JMP 它應該做什麼。
無效的方法:
使用者知道分組資訊(有列)但不會告訴 JMP(透過 GUI)。
那麼 JMP 不使用分組資訊也就不足為奇了。
[還有其他情況下 JMP 會應用一些猜測 |自動更正——用戶對其創造力感到好奇。
回覆:堆疊不良?您對原始問題中提供的資料集有何看法?它是否“結構良好”?
您對 JMP 在拆分該表時的當前行為有何看法?
我的理解是,「拆分依據」列是那些您希望最終出現在新表的列標題中的值的列,「拆分列」是那些您希望最終出現在新列的單元格中的值的列。我還是不明白這個上下文中的「分組」是什麼意思。
回覆:堆疊不良?您的初始資料表「結構良好」。
分組概念可以從輸入資料表中的哪些行被分組在一起來定義特定的輸出行來考慮。
回覆:堆疊不良?另一種解釋方式:
您的“類別”和“級別”列(單獨)結構不太好 - 需要一些額外的信息,例如
@BHarris寫道:請注意,缺少 Category=B、Item=2。
告知其他人一個事實:第 5 行和第 6 行之間缺少了一些東西。
案例 #1:
使用者沒有告訴 JMP「Item」列的存在(「Item」在 GUI 中未使用**)
那麼 JMP 就沒有足夠的知識來正確地完成這項工作。
案例 #2:
有第三個降落區。它允許用戶使用
@BHarris寫道:請注意,缺少 Category=B、Item=2。
以結構化的方式 - 作為分組列。
「分組」非常適合你想要的:
向 JMP 提供附加信息,以便將條目放入特定的行中,不是由輸入資料的Rank(row()、Categories)決定,而是透過分組列進行分組。
**) 編輯:
「Item」 在 GUI 中使用- 透過保留全部隱式使用
但這太「被動」了——見下文。
回覆:堆疊不良?@hogi——你在這裡搞亂了一些東西,我沒有在介面的任何地方包含 Item 列,因此這意味著 Split 演算法可能甚至沒有真正意識到它的存在。
我認為我相信拆分操作中所有列都很重要,並且它試圖盡可能地維持所有關係,例如“lima”也僅與項目“3”相關聯。現在,我試圖弄清楚,如果我執行“保留全部”操作,是否所有其他列都應該分組列...
我希望有一天能夠成為 JMP 大師,並得到徹底的啟發,也許那時我就能理解為什麼 JMP 不會在組角色中隱式使用所有其他「保留」列。在此之前,它可能會繼續讓我感到緊張,因為在這些條件下它的行為對我來說並不明顯,導致在難以識別的條件下輸出數據錯誤,並且沒有足夠的記錄讓我理解。至少那種緊張感會讓我以後使用時更加警惕。
謝謝。
回覆:堆疊不良?你提到了這一點,但也許明確地寫出來會有所幫助:
JMP 套用以下規則:
- 群組:保留並用於分組
- 保持 :保留(〜不要掉落)
@BHarris寫道:
現在,我試圖弄清楚,如果我執行“保留全部”操作,是否所有其他列都應該分組列...
我猜是的。
您可以嘗試兩種方法,檢查差異,然後再做決定。
群組幫助您「建構」資料。如果資料已經結構化,那就沒有什麼壞處。如果它不是結構化的,它將保證有意義的輸出。
使用Keep 時,您必須非常清楚地知道自己在做什麼。以下是一些範例。
社群中的這些小討論對理解有很大幫助——挑戰和完善用戶的知識。
以下是我們在使用者輔導課程中提出的一些「有趣」的 Jmp 新手問題集合。我收集它們是為了幫助其他用戶了解 JMP。許多問題只是修辭問題——它們說明有時只是「JMP 俚語」使得理解 JMP 邏輯變得並不簡單。
@BHarris寫道:
在此之前,它可能會繼續讓我感到緊張,因為在這些條件下它的行為對我來說並不明顯,導致在難以識別的條件下輸出數據錯誤,並且沒有足夠的記錄讓我理解。至少那種緊張感會讓我以後使用時更加警惕。
我同意。 「了解 JMP 在做什麼」非常重要 - 並且要了解詳細程度,以便用戶能夠做正確的事情。不緊張,不驚訝。如果發生意外情況,使用者就會開始感到焦慮 - Jmp 還會在哪裡做出意外行為? ! ? !
也許 JMP 中有一個很棒的功能,但它會讓用戶感到煩惱或害怕 - 至少是那些沒想到 JMP 能做什麼的人...
擁有這些陷阱門的地圖可以幫助使用者逃脫。每個 JMP 使用者都應該有這樣一張地圖,以便在使用 JMP 時「感到安全」。
即使細節有詳細的記錄 - JMP 非常強大,但同時文檔太少又太多!
這使得查找正確的資訊變得困難。 學習機器人現在讓這一切變得容易多了,但它仍然不知道所有的細節。
回覆:堆疊不良?保留但不分組的拆分極端情況

保持:名稱(名稱不用於分組)
由於兩行合併為一行,因此許多“名稱”丟失了。
第一個*) 項目獲勝,因此我們從女性名字開始,所有男性名字都被刪除。
全部都是男性名字?沒有——最後還剩下一些男學生。
*) 對於所有桌面平台來說,沒有通用的規則:哪些值會被保留,哪些值將會遺失。
Join 也保留第一個值(並且不關心後續值。
更新嘗試保留每一個值,並且最後一個值“保留” - 這就是 Tables/Update 如此緩慢的原因(執行命令可能需要幾個小時): 加速 Tables/Update
回覆:堆疊不良?
@hogi寫道:
第一個*) 項目獲勝
哎呀...這僅適用於透過保持新增的列。
對於拆分列,拆分行為類似於更新:最後一個「堅持」。
我嘗試用這個例子來說明這一點,其中我標記了最終資料集中的「名稱」條目和 M/F 分割條目。可以看到:
- 透過保持(類似名稱)新增的欄位:等級=1 (取第一個,跳過後續的)
- 透過分割列新增的行(高度 --> M/F): RankReverse=1 (最後一個「堅持」)

回覆:堆疊不良?該行為遵循邏輯,但人們可以爭論該邏輯是否簡單/是否每個使用者都期望:)
我想知道“保留全部”是否是預設的正確選擇?如果 JMP 以

....然後啟動「保留全部」選項的使用者可以查閱文件以確保它能滿足他的要求。
JMP 甚至會顯示警告: “您確定要使用 Keep 嗎?最好使用 Group?”
底線:沒有驚喜|不使用該選項的用戶會感到焦慮。
比 Split: 表/更新危險得多
預設介面也以“全部”開頭
a)新增列
b)替換列(!)
幾年前,我認為編寫一個插件來替換預設設定是足夠危險的:

額外的好處:透過此更改,平台不會從嘗試更新數千列的設定開始。
這使得它比原來的速度快幾個數量級:)
https://community.jmp.com/t5/JMP-Wish-List/Speed-up-Tables-Update/idc-p/653334/highlight/true#M4531
回覆:堆疊不良?我添加了主題到警告:Jmp 執行意外操作的地方

回覆:堆疊不良?我希望有一天能看到動畫來展示分割(和堆疊)正在做什麼。我想像拆分列的值被推入列標題中,拆分列被推入這些新列的單元格中。 (我剛才很驚訝地得知,如果給定的拆分列有多個拆分列,那麼就會創建新的編號列。)
但真正有趣的部分出現在發生衝突時,例如多個值試圖出現在同一個單元格中。 JMP 確實發出了正在發生這種情況的警告(這很好!),但這篇文章的整個內容都來自一個看起來被正確分割的數據集,但在我深入研究之後,我意識到事實並非如此,而且我忽略了該警告,因為我不理解它。
我認為,警告應該從:“要保留的列的多行(可能具有不同的值)映射到拆分錶中的同一行。每列僅保留一個值。” ---> 至:“多個值映射到同一個單元格;只保留一個。”
回覆:堆疊不良?
@BHarris寫道:
我剛才驚訝地得知,如果給定的拆分列有多個拆分列,則會建立新的編號列。
如果使用多個拆分列,JMP 會將拆分列的名稱與按列拆分的條目組合來建立列名:

我只選擇一列作為拆分列,拆分列的名稱不包含在列名中:

當我開始使用 Big Class 來解釋 JMP 的功能時,我的同事們都翻了白眼。
但使用替代數據集來玩設定是一個很棒的技巧:
透過“M”和“F”,很明顯 JMP 正在做什麼,無需懷疑原始資料集中出現的“數字”。
Big Class 看起來很簡單,但它足夠複雜,需要解釋很多細節。
只是缺少共線性......