我正在嘗試計算x在組y上的唯一值。R中的聚合方式太長了
這是函數:
aggregate(x~y,z[which(z$grp==0),],function(x) length(unique(x)))
這是服用了太多的時間(〜6小時,還沒有完成)。我不想停止處理,因爲我今晚必須完成這個任務。
by()
時間太長以及
任何想法什麼錯誤,我怎麼能減少處理時間約1小時? 我的數據集有3百萬行和16列。
輸入數據框ž
x y grp
1 1 0
2 1 0
1 2 1
1 3 0
3 4 1
我想要得到的計數獨特(x)的每個y其中GRP = 0
UPDATE:使用@ EDDI的出色答卷。我有
x y
1: 2 1
2: 1 3
任何想法如何快速總結這是每個值y的x的數量? 所以對於這一點,將是
Number of x y
5 1
1 3
發佈一個最小可重現的例子,有人會給你一個答案,在一分鐘內運行良好。 – eddi
提供輸入和預期輸出。這樣可以讓你理解你正在努力完成什麼。 – user5249203
已知在數據框中'aggregate()'的公式方法較慢。但我敢打賭,你現在可以停下來,並使用* data.table *包,而仍然按時完成。但是,可重複的例子。 –