我已經使用dplyr代碼慢速data.table子集VS dplyr
group_by(dt, ID) %>%
filter(any(colY == 1 & colX == 10))
以下格式到子集像下面
ID colX colY 1111 3 1 1111 2 1 1111 6 0 1111 9 0 2222 10 1 2222 3 1 2222 5 0 2222 7 0 3333 8 1 3333 10 1 3333 3 0 3333 2 0
一個data.table成
ID colX colY 2222 10 1 2222 3 1 2222 5 0 2222 7 0 3333 8 1 3333 10 1 3333 3 0 3333 2 0
通過約900k行過濾得到第二張表需要大約1.3秒。
我一直在試圖實現一個data.table子集,它會更快,但到目前爲止結果只需要更長的時間。使用以下data.table子集
dt[ , .SD[any((colY == 1 & colX == 10)) ], ID]
需要大約14秒。這裏似乎是什麼問題?
,10]是你的'ID'列的位置?也許你會生成一些模擬數據,這樣很容易爲你找出現實的解決方案。 – russellpierce
我很抱歉應該按照ID – Alex