帶分組的字串資料計算模式我嘗試使用以下方法計算按 B 列分組的 A 列的眾數:Col Mode(:A,:B)函數。然而,由於 A 列包含字串數據,因此沒有輸出任何值。然後我發現Mode(:A)即使對於字串數據,也可以獲得眾數。現在的問題是我不知道如何進行分組。我應該如何建立公式?
自動化和腳本編寫回覆:帶分組的字串資料的計算模式你需要公式還是只需要結果?
回覆:帶分組的字串資料的計算模式謝謝你的回复,jthi。
我需要一個公式,想把它寫進資料表裡。
回覆:帶分組的字串資料的計算模式最簡單的方法可能是建立一個新列,將數值轉換為數字(可以使用“重新編碼”->“標籤轉代碼”功能),然後使用該列進行計算。之後,可以使用「複製列屬性」功能將「標籤值」列屬性複製過來。
此外,希望新增一個願望清單項目 Col Mode() 以支援字元列
回覆:帶分組的字串資料的計算模式所以,這意味著需要多一個步驟。我明白了。我希望 Col Mode() 函數能夠支援字串列。非常感謝。
回覆:帶分組的字串資料的計算模式您可以在這裡建立願望清單項目。例如,您可以建立工作流程或腳本來處理這個額外的步驟。
用公式可能也可以,但我不知道效率如何。這應該能得到性別相對於年齡的眾數。
As Constant(
score_indices = Associative Array(:sex) << get keys
);
score_indices[Col Mode(Col Score(:sex), :age)]

回覆:帶分組的字串資料的計算模式我會在那裡發布願望清單,謝謝。
你是如何建立「S」列的?我對這個想法很有興趣!
回覆:帶分組的字串資料的計算模式我已經提供了 S 的公式(需要 JMP19)。
回覆:帶分組的字串資料的計算模式// データテーブルを取得
dt = Current Data Table();
// B列のユニークな値を取得(グループ化のため)
unique_groups = As List(dt:B<< Get As Matrix);
// 新しい列 "mother" を作成
dt << New Column("mother", Character, "Nominal");
// 各グループごとに処理を実行
For(i = 1, i <= N Items(unique_groups), i++,
// 現在のグループをフィルタリング
current_group = unique_groups[i];
Show(current_group);
subset_rows = As List(dt << Get Rows Where(:B == current_group));
Show(subset_rows);
Show(Type(subset_rows));
// A列のキーを取得
score_indices = dt:A[subset_rows] << Get As List;
Show(score_indices);
// グループ内の "mother" 列を更新
dt:mother[subset_rows] = If(
Is Missing(score_indices[Col Mode(Col Score(dt:A[subset_rows]))]),
score_indices[2],
score_indices[Col Mode(Col Score(dt:A[subset_rows]))]
);
);
提取 B 列中的唯一值,並用於處理每個組。
但是,這樣做會輸出錯誤訊息:“您需要為 Send 輸入一個可腳本化的物件。 ”
如果您有任何見解,請告訴我。
回覆:帶分組的字串資料的計算模式// データテーブルを取得
dt = Current Data Table();
// B列のユニークな値を取得(グループ化のため)
unique_groups = As List(dt:B<< Get As Matrix);
// 新しい列 "mother" を作成
dt << New Column("mother", Character, "Nominal");
// 各グループごとに処理を実行
For(i = 1, i <= N Items(unique_groups), i++,
// 現在のグループをフィルタリング
current_group = unique_groups[i];
Show(current_group);
subset_rows = As List(dt << Get Rows Where(:B == current_group));
Show(subset_rows);
Show(Type(subset_rows));
// A列のキーを取得
score_indices = Associative Array(Set Unique(dt:A[subset_rows])); Show(score_indices);
// グループ内の "mother" 列を更新
dt:mother[subset_rows] = If(
Is Missing(score_indices[Col Mode(Col Score(dt:A[subset_rows]))]),
score_indices[2],
score_indices[Col Mode(Col Score(dt:A[subset_rows]))]
);
);
這樣就解決了取得 A 列鍵值的問題。
jthi,給您添麻煩了,非常抱歉。
回覆:帶分組的字串資料的計算模式// データテーブルを取得
dt = Current Data Table();
process_nm = "A";
// B列のユニークな値を取得(グループ化のため)
unique_groups = dt:B << Get values;
// 新しい列 "mother" を作成
dt << New Column("mother", Character, "Nominal");
// 各グループごとに処理を実行
For(i = 1, i <= N Items(unique_groups), i++,
// 現在のグループをフィルタリング
current_group = unique_groups[i];
subset_rows = dt << Get Rows Where(:B == current_group);
// A列のキーを取得
score_indices = Associative Array(Set Unique(Column(process_nm)[subset_rows])) << get keys;
// グループ内の "mother" 列を更新
dt:mother[subset_rows] = Mode(Column(process_nm)[subset_rows]);
);
帶分組的字串資料計算模式
- 列模式()不支援字串
・Mode() 支援字串
・Mode() 不支援分組
【對策】
1. 將字串視為數字,並使用列模式()。
2. 預先篩選行並使用 Mode()。
回覆:帶分組的字串資料的計算模式一個類似的願望:
:folded_hands: 總計與製表:為字元列新增聚合選項
此功能實現後,您就可以使用表格/總計功能來完成此任務。