如何分析行中重複值的數字順序?嗨,
我是瑞典少數幾個使用JMP的人之一,而我的大多數學者都使用SPSS。但是,我喜歡JMP並且已經發表了70篇文章,因此它對我來說效果很好。我是副教授,並且會將自己形容為一個先進的JMP業餘愛好者,可以在某種程度上進行編程,但是我遇到了一個問題。我之前已經發布過這個問題但是並沒有完全理解論壇上的答案。問題如下:
我有一個名為的文件結果 。
在這個文件中我有一列 5700個號碼按順序排序,如:
NR
3456
3666
3687
3687
3687
5444
5444
5445
我希望有關如何編寫腳本的信息,或者我是否應該在額外的列中編寫任何內容以獲得數字的重複出現順序。原因是我只對第一個感興趣。如果我能得到訂單,我可以製作一個單獨的文件,只包含訂單1。
喜歡
Nr Order
3456 1
3666 1
3687 1
3687 2
3687 3
5444 1
5444 2
5445 1
由於我是業餘愛好者,如果你能以簡單的方式寫出答案,我將不勝感激。
您忠誠的
Lars Enochsson
副教授
Umeå大學
瑞典
Re:如何分析行中重複值的數字順序?謝謝。很好的幫助。這解決了問題./LarsRe:如何分析行中重複值的數字順序?甜!帶有by變量的ColRank()在JMP 13之前不可用。
作為一個FYI,這是一個檢查性能的腳本。 如果有1,000,000或更多行,我可能會排序和使用滯後。
Names Default to Here(1);
dt = New Table("Test It", add rows(6000),
New Column("Nr", numeric, continuous,<<SET each="" value=""></SET><BR /> 對於6000行,使用滯後使用Col Rank()= 3.13 *
t1 - t0 = 18836;
t3 - t2 = 1863;
t5 - t4 = 4161;
對於1,000,000行,使用滯後使用Col Rank()= 2.45 *
t1 - t0 = 1521679;
t3 - t2 = 694813;
t5 - t4 = 621142;
* /
Re:如何分析行中重複值的數字順序?嘗試使用的列公式 Col Rank() 帶變量的函數它可能需要JMP 13或更高版本,不確定何時首先引入ColRank中對變量的支持。
試試下面的腳本。它應該提供與先前解決方案相同的結果。但是,它不依賴於排序。
Current Data Table() << New Column("Order", Formula(Col Rank(:Nr, :Nr)));
(瑞典的另一個JMP用戶)
Re:如何分析行中重複值的數字順序?由於列Nr按排序順序,因此可以使用列公式完成。在演示公式之前,您應該查看主菜單>幫助>腳本索引>功能>行或搜索滯後。 我創建了一個名為Count的列並添加了這個公式。 默認情況下,第一行的計數為1。 第二個條件:Nr == Lag(:Nr,1)是條件,如果當前行等於前一行,則取前一個計數,Lag(:Count,1)並遞增它。 否則,計數為1。
If(
Row() == 1, 1,
:Nr == Lag( :Nr, 1 ), Lag( :Count, 1 ) + 1,
1
)
注意JMP Lag適用於文本和數字。 但是,如果我有一列文本,我建議修改函數
If(
Row() == 1, 1,
Trim( Lowercase( :txtCol ) ) == Trim( Lowercase (Lag( :txtCol, 1 ) ) ) , Lag( :Count, 1 ) + 1,
1
)
希望有所幫助。