如何在“where”條件下使用 Col 最大值公式嗨,我有一個問題,我想制定一個新專欄作為所有其他國家/地區的基準。 如果國家有更多的行,我想以它的最大值為基準。 請參閱下面的示例以進行說明。
數據看起來像這樣:
國家價值期
一個 10 201301
一個 30 201301
B 20 201301
C 50 201301
D 40 201301
我想要實現的目標(使用單元格公式):Col Maximum (:value, :period, :country)其中:國家==“A”
輸出:
國家價值期基準
10 201301 30
一個 30 201301 30
B 20 201301 30
C 50 201301 30
D 40 201301 30
如您所見,我只想對國家 A 的最大值進行基準測試。
我嘗試了 Col Maximum (:value, :period, :country == "A") 並且它會返回 "50"
Col Maximum (:value, :period, :country) 和 Col Maximum (:value, :period, :country == "A") 都返回 "50"
我很確定有一個簡單的解決方案!
希望你們能幫忙!
謝謝,謝謝!
回复:如何在“where”條件下使用 Col 最大值公式有趣的問題 - 還在等待答案嗎?
有一組帖子有類似的問題如何限制col ...聚合特定子集的功能。
(主要是:將它們限制為非排除行的子集)
https://community.jmp.com/t5/Discussions/Compute-Column-Mean-while-restricting-observations-used/mp/10377#M10055
https://community.jmp.com/t5/Discussions/JMP10-Col-Max-and-Col-Min-functions-returned-the-data-from/td-p/10555
https://community.jmp.com/t5/Discussions/Col-Functions-and-Row-States/td-p/351705
想法:
如果對平均身高感興趣,可以聚合所有行 - 或者可以分別聚合男性和女性條目。
對於第二個,解決方案幾乎與第一個一樣簡單:只需使用一個額外的 GroupBy 變量來拆分想要的數據和不需要的數據。
但是,用戶通常還需要:這些值應該顯示在所有相應的行中(即也適用於女性)。
[原始帖子中帶有基準列的示例說明了為什麼這種行為是有意義的。]
使用 GroupBy,很容易獲得正確的值 - 但如何將它們分佈在所有行上。
如果在a後面有一個類似查找表的東西col ...聚合函數,函數使用相同的標識符
1)將行拆分到不同的組進行聚合(“M”/“F”):
Judy 是女性,Judy 所在行的重量應包含在女性平均體重
2) 作為從查找表(“M”/“F”)中讀取條目時的索引:
Judy 是女性,新欄目應該包含女性平均體重在朱迪那排
因此,男性和女性要么獲得相同的值,因為標識符相同 (mean1),要么因為標識符不同而獲得不同的值 (mean2)。
因此:
Jmp 用戶能夠使用 GroupBy 功能通過以下方式從計算中刪除值:
-計算不同子組的不同值
- 轉儲不需要的結果
但後來他得到
-得到不同子組的不同值
免費 - 即使他沒有訂購此選項(好吧,代碼講述了另一個故事 - 但讓我們想想用戶想要什麼):)
有沒有一行命令從均值計算中刪除女性,但將值寫入帶有“女性”的相應行?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column("mean1", Formula(Col Mean(:weight, :age)));
dt << New Column("mean2", Formula(Col Mean(:weight, :age, :sex)));
dt << New Column("mean2", Formula(If(:sex=="M", Col Mean(:weight, :age, :sex))));
dtM = dt << subset( Rows( dt << get rows where( :sex== "M" ) ), selected columns( 0 ));
dtM << New Column("mean_M", Formula(Col Mean(:weight, :age)));
dt << Update(
With( dtM ),
Match Columns(:age = :age ),
Add Columns from Update Table( :mean_M ),
Replace Columns in Main Table( None )
);
回复:如何在“where”條件下使用 Col 最大值公式謝謝。回复:如何在“where”條件下使用 Col 最大值公式Col Maximum() 僅在公式中可行,其中每行的分離結果是輸出。要執行您想要的操作,請使用 Summarize() 函數。
看:
幫助==>腳本索引==>總結
回复:如何在“where”條件下使用 Col 最大值公式嗨,馬克,
試圖按年齡或性別獲得最大體重,但在以下腳本中只產生一個值。
按年齡,有 6 個不同的年齡,對於每個年齡,我想計算每個年齡的最大重量。
Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
max_weight_by_age = Col Max( :weight, :age );
max_weight_by_sex = Col Max( :weight, :sex );
回复:如何在“where”條件下使用 Col 最大值公式我可以將此公式添加到 Big Class 示例數據表中的新列:
Col Max( :weight, :age )
回复:如何在“where”條件下使用 Col 最大值公式嗨,馬克,
你能舉例說明在使用 col Max 時如何使用 嗎?
謝謝。回复:如何在“where”條件下使用 Col 最大值公式請參閱幫助 > 腳本索引 > 函數:

回复:如何在“where”條件下使用 Col 最大值公式謝謝吉姆,我的意思只是總結。 我是怎麼做的(兩個 jsl 命令):
對列進行總結,創建具有值的新表(列的最小值/最大值/或任何其他統計信息)。
然後我通過匹配行條目使用匯總表更新主表。
我只是好奇 Max col() 命令中是否有條件選項可以識別唯一的列值並消除這個額外步驟的需要。 (將消除額外的表格和 2 個額外的步驟)。
感謝你的幫助。
回复:如何在“where”條件下使用 Col 最大值公式我通常使用 Summarize() 函數而不是 Summary Platform 來輕鬆確定在列中找到的級別。然後,從那裡,您只需生成完成工作所需的公式。
回复:如何在“where”條件下使用 Col 最大值公式假設國家列有多個名稱,而我不知道所有可能的值。 如何調整此查詢來做到這一點。
我可以通過創建一個匯總表然後更新該表來做到這一點,但這似乎是一種低效的方法,我很好奇是否可以像這樣一步完成。
提前致謝。
回复:如何在“where”條件下使用 Col 最大值公式這麼晚才回复很抱歉! 感謝您的解決方案!回复:如何在“where”條件下使用 Col 最大值公式鑑於您陳述需求的方式,假設您知道具有多個條目的國家/地區。
dt = Current Data Table();
rowperiod = :Period[Row()];
Max(
:Value[dt << get rows where(
:Country == "A" & :period == rowperiod
)]
);