ColumnRank 按组?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
有没有一种方法可以构建等同于 «ColumnRank by ...»(组)的公式。 我通常使用分发平台(带有“按组”选项)并为此目的将排名保存在静态列中。 但是这次,我需要一个动态列(计算)。
谢谢,
克劳德
回复:ColumnRank 按组?大家好,
Col Rank 函数现在确实支持最初要求的 BY 变量。 看起来 JMP 13 时间框架中添加了全面支持,所以如果您使用的是那个版本或更新的版本,您应该能够做到这一点。
在线 JMP 帮助提供了更多详细信息和决胜局选项:
https://www.jmp.com/support/help/en/15.1/#page/jmp/statistical-functions-2.shtml?os=win&source=application#ww2752649
我知道这是一个较旧的线程,但希望此信息可供可能正在寻找它的任何其他人使用。
干杯!
奥黛丽
回复:ColumnRank 按组?谢谢罗恩。
最后我选择修改原来的更新脚本。 这是一个 3 步程序:
- 第一步是原始更新(ODBC 数据源),它正在创建一个新表(因为硬编码列);
- 然后第二个脚本步骤是用这个新表的数据更新我的主表;
- 最后一步是关闭新表。
这样我就可以根据需要创建尽可能多的新硬代码列(脚本不需要任何修复)。
克劳德
回复:ColumnRank 按组?你好克劳德贝拉万斯,
如果更新有问题,您需要做的就是删除更新前的硬编码列,并在更新后立即重新引入它们。
如:
删除硬编码列;
更新;
重新计算硬编码列;
最好,
罗恩
回复:ColumnRank 按组?非常感谢罗恩。 这是解决问题的巧妙方法。
不幸的是,我不能使用脚本,因为我必须通过一个计算列。 事实上,如果我添加带有硬数据的列,用我的数据库更新我的表(通过 DNS/ODBC)将创建一个新表而不是简单地替换数据。
克劳德
回复:ColumnRank 按组?你好克劳德贝拉万斯
我也不满意“关系被任意打破” .至少应该有一个选项可以将其更改为领带获得相同的等级,就像在常规序数变量中发生的那样。
我有另一种方法可以在不对表格进行排序的情况下“排名依据”——在我的例子中,排序是一件令人讨厌的事情。它赋予领带相等的价值。
最好,
罗恩
名字默认到这里( 1个) ;
// 定义数据源
dt =打开( “$SAMPLE_DATA/Big Class.jmp” ) ;
// 为排名添加一列
dt <<新建专栏( “秩” ,数字,序数) ;
//// 选项 1:按列排名
// 提取变量级别的列表
通过varlist =关联数组( dt :年龄) <<拿到钥匙;
// 为每个年龄组创建单独的身高排名列表
为了(伊布= 1个,伊布<=物品(通过varlist ) ,伊布++,
评估(解析( “高度列表” ||字符(通过varlist [伊布]) || " = 关联数组(" ||字符( dt :高度[ dt <<获取行在哪里( :年龄==通过varlist [伊布])]) || " ) << 获取密钥" )) ;
) ;
为了(我知道了= 1个,我知道了<=行( dt ) ,我知道了++,
:秩[我知道了] =评估(解析( “位置(高度列表” ||字符( dt :年龄[我知道了] ) || “ ” ||字符( dt :高度[我知道了]) || " ) " )) ;
) ;
//看看它是否有效
dt <<种类(
经过( :年龄, :高度) ,
命令(上升,上升)
) ;
////
//// 选项 2:排名(无按列)
// 获取高度的唯一值作为列表
高度表=关联数组( dt :高度) <<拿到钥匙;
为了(一世= 1个,一世<= N行( dt ) ,一世++,
dt :秩[一世] =位置(高度表, :高度[一世] ) ;
) ;
//看看它是否有效
dt <<种类(
经过( :高度) ,
命令(上升)
) ;
回复:ColumnRank 按组?嗨,杰里,
没问题。 我很高兴看到有一天我的愿望会实现!
再次感谢。
克劳德
回复:ColumnRank 按组?很抱歉造成混淆,当我看这个的时候,我显然没有注意我的系统上激活了哪个版本。 因此,您得到了为“未来”JMP 版本计划的功能的“未经授权”预览。
回复:ColumnRank 按组?嗨女士,
嗯,这是一个非常有趣的解决方法。 它对我开放完全地新区域(Eval、Formula 等)。
我希望未来的 JMP 版本能有这个新函数“ColRank by…”。
非常感谢您花时间回答我的问题。
克劳德
回复:ColumnRank 按组?恐怕当前的 JMP 版本不支持 Col Rank() 的可选参数。
我没有真正动态工作的好的解决方法。 下面示例中的列公式应该有效,但前提是变量在组内排序。
dt =打开( “$SAMPLE_DATA/Big Class.jmp” ) ;
dt <<种类(经过( :年龄,重量) ,替换表( 1个)) ;
F =表达式(
评价(评估表达式(栏号( :重量,排() <=表达式(排()) ,:年龄)))
) ;
dt <<新建专栏( “按年龄划分的体重排名” ,数字,公式(名称表达式( F ))) ;
回复:ColumnRank 按组?嗨,杰里,
你能解释更多吗? 该手册对第三个论点非常简约。
上校排名
对每一行的值进行排序,从最低值 1 到非‐缺少最高值的列。 关系被任意打破.
我不明白它可能意味着什么以及如何使用它。
谢谢您的帮助!
克劳德
回复:ColumnRank 按组?嗨,克劳德,
Col Rank(column, ) 函数可以满足您的需求。 打破平局的默认顺序是行顺序,但有一个可选的第三个参数允许其他一些选择。 希望这可以帮助。
-杰瑞