如何在“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
)]
);