我已經創造了一些代碼來處理以下任務:有沒有一種方法來有效地計算A中的列值,使用data.table落在B的範圍內?
ref = read.table(header=TRUE, text="
user event
1441 120120102
1441 120120888
1443 120122122
1445 120124452
1445 12
1446 12", stringsAsFactors=FALSE)
data = read.table(header=TRUE, text="
user event1 event2
1440 12
1441 120128523 120156545
1441 12
1441 120122344 120122355", stringsAsFactors=FALSE)
我在這裏是一個函數(信用卡用戶卡洛斯的Cinelli),讓我通過線對錶data
走線和搜索記錄事件1和事件2之間有多少參考事件,由user
ID標識。現在
,我想知道是否有更快的方式做到以下功能:
count <- function(x,y,z) ref[, sum(event >=x & event <= y & user ==z)]
data[, count:=mapply(x=event1, y=event2, z=user, count)]
我一直無法做太多,想知道如果data.table
方案將有什麼可以幫助使上述速度更快。非常感謝!
您需要考慮滾動連接.... – mnel 2014-10-01 06:15:53
Arun,感謝您的回覆!是的,數據是我的錯,讓事件1>事件2發生錯誤。我遇到的問題是(我可能是錯的),我似乎無法找到一種方法來搜索'event1'和'event2'之間夾有多少'event'基於'user' id 。看來,我無法弄清楚如何以及如果我只能通過用戶ID找到重疊連接。我會正確還是錯誤?謝謝! – user1398057 2014-10-01 19:17:58