我有日期,郵編一個data.table
和購買金額。創建基於另一列值的新的R data.table列和分組
library(data.table)
set.seed(88)
DT <- data.table(date = Sys.Date()-365 + sort(sample(1:100, 10)),
zip = sample(c("2000", "1150", "3000"),10, replace = TRUE),
purchaseAmount = sample(1:20, 10))
這將創建下列內容:
date zip purchaseAmount
1: 2016-01-08 1150 5
2: 2016-01-15 3000 15
3: 2016-02-15 1150 16
4: 2016-02-20 2000 18
5: 2016-03-07 2000 19
6: 2016-03-15 2000 11
7: 2016-03-17 2000 6
8: 2016-04-02 1150 17
9: 2016-04-08 3000 7
10: 2016-04-09 3000 20
我想補充的第四列earlierPurchases
。此欄應sum
在purchaseAmount
所有數值爲zipcode
內以前Xdate
。
編輯:每個建議正如弗蘭克,這裏是預期的輸出:
date zip purchaseAmount new_col
1: 2016-01-08 1150 5 5
2: 2016-01-15 3000 15 15
3: 2016-02-15 1150 16 16
4: 2016-02-20 2000 18 18
5: 2016-03-07 2000 19 19
6: 2016-03-15 2000 11 30
7: 2016-03-17 2000 6 36
8: 2016-04-02 1150 17 17
9: 2016-04-08 3000 7 7
10: 2016-04-09 3000 20 27
是否有data.table
辦法做到這一點,或者我應該只寫一個循環function
?
重新下方的評論,這就是爲什麼我們建議將發表您的輸入和預期的輸出都,所以很顯然,如果一個答案讀取的問題簡單地達到預期的效果。以下是一些指導:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/28481250#28481250現在編輯它還不算太晚。 – Frank
感謝您的指導和編輯代碼@Frank。我編輯了這個問題的輸出結果,並閱讀了這些小插曲,以便更好地理解您的解決方案。由於這是我在論壇上的第一個問題,所以我非常感謝您提供答案和建議的禮貌和有用的方式。 – Mantelimies