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 )))
對於非常大的數據表,可能有更快的方法。