JMP - 通过比较现有行生成唯一行号的列?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />问候,
如果我有以下样本数据和冒号;
ID 1日期1
ID 1日期2
ID 1日期3
ID 2日期4
ID 2日期5
ID 2日期6
ID 2日期7
ID 3日期8
ID 3日期9
ID 3日期10
ID 3日期11
ID 3日期12
对于给定的行(也称为唯一ID和日期对),如何创建新列以指示此行是日期编号X(每个唯一ID的Y行)?
ID 1日期1 1
ID 1日期2 2
ID 1日期3 3
ID 2日期4 1
ID 2日期5 2
ID 2日期6 3
ID 2日期7 4
ID 3日期8 1
ID 3日期9 2
ID 3日期10 3
ID 3日期11 4
ID 3日期12 5
对于这个小样本集,我可以轻松地手动完成。但是,我不知道如何编写脚本使用可用的JMP / jsl函数来比较行之间为大型数据集执行此操作。
谢谢。
Re:JMP - 通过比较现有行生成唯一行号的列?对于大型数据集,您可以尝试以下方法;假设第一列按您的示例排序,下面的表达式将作为新列中的公式。在1M行数据集上,我的机器大约需要2秒钟。
( 行 () - Col Min ( 行 () , : ID )) + 1
干杯,
布雷迪
Re:JMP - 通过比较现有行生成唯一行号的列?非常感谢!
Re:JMP - 通过比较现有行生成唯一行号的列?非常感谢!
Re:JMP - 通过比较现有行生成唯一行号的列?你也可以使用其中一个公式,使用排序依据(ID,日期)后。 一个公式计算给定ID的日期(任何日期)的次数,第二个公式计算存在的次数新给定ID的日期(请参见屏幕截图中的第12到14行)。
如果(Row()== 1,1,If(:ID [Row() - 1,Empty()] ==:ID,:该ID的日期#[Row() - 1,Empty()] + 1 ,If(:ID [Row() - 1,Empty()]!=:ID,1,Empty())))
如果(Row()== 1,1,If(:ID [Row() - 1,Empty()] ==:ID,If(:Date [Row() - 1,Empty()]!=:Date ,:该ID的唯一日期#[Row() - 1,Empty()] + 1,:该ID的唯一日期#[Row() - 1,Empty()]),If(:ID [Row() - 1,空()]!=:ID,1,空())))

Re:JMP - 通过比较现有行生成唯一行号的列?有几种方法可以做到这一点。例如,复制下面的代码并将其粘贴到新列的公式属性中。它应该将ID的所有实例的数量返回到当前行(假定ID列被命名为“ID”)。
EVAL ( Eval Expr ( Col Sum ( 行 () <= EXPR ( 行 ()) , : ID )))
对于非常大的数据表,可能有更快的方法。