2014-01-23 150 views
0

好吧,我知道標題可能會令人困惑。對於那個很抱歉。我從2008年開始繪製並運行了一個擁有彩票累積獎金的數據框。我想創建一個新的列來計算抽獎次數,因爲該抽獎的jp值具有相似的值(或者完全相同,或者甚至更好,在10%以內)。創建一列來計算另一列中相同數字之間的距離

所以,我有

run draw jp 
74  1  15 
74  2  20 
74  3  25 
75  1  15 
75  2  20 
76  1  15 
76  2  20 
76  3  26 

,想知道運行76時,畫3個打26,它已經因爲類似的JP 5平。對於每一個觀察一路下來。

因此,數據最終會看起來像:

run draw jp draws sincelikejp 
74  1  15 na 
74  2  20 na 
74  3  25 na 
75  1  15 3 
75  2  20 3 
76  1  15 2 
76  2  20 2 
76  3  26 5 

有什麼想法?

+0

我不明白結果會是什麼樣子,你能舉個例子嗎? –

+0

@MarkHeckmann,我編輯了原始問題以顯示輸出。 實際的數據集大約有1000個觀測值,所以我試圖找出一種方法來實現自動化。 – datahappy

回答

2
DF <- read.table(text="run draw jp 
74  1  15 
74  2  20 
74  3  25 
75  1  15 
75  2  20 
76  1  15 
76  2  20 
76  3  26", header=TRUE) 

tmp <- outer(DF$jp, DF$jp, function(a, b) abs(b-a)/b) 
tmp[lower.tri(tmp)] <- NA 
DF$since <- apply(tmp, 2, function(x) { 
        res <- diff(tail(which(x < 0.1), 2)) 
        if (length(res) == 0) return(NA) else return(res) 
        }) 
# run draw jp since 
# 1 74 1 15 NA 
# 2 74 2 20 NA 
# 3 74 3 25 NA 
# 4 75 1 15  3 
# 5 75 2 20  3 
# 6 76 1 15  2 
# 7 76 2 20  2 
# 8 76 3 26  5 
相關問題