我有一個數據框predictors
列session_id
和item_id
列。使用R中的data.table跟隨聚合方法的等價物是什麼?
我想計算屬於一個特定會話的所有項目的計數(在整個數據框中)。
我已經使用了聚合的方法是這樣的:
popularity <- aggregate(predictors$item_id,
FUN = function(items) {(table(predictors$item_id[predictors$item_id %in% items]))},
by = list(predictors$session_id))
這基本上計算計數屬於一個特定的會話的所有項目名單(通過了predictors
)。
例如如果有兩條記錄,分別爲session1 - item1
和session1 - item2
,我希望獲得item1
和item2
的計數列表(在整個predictors
數據框中)與session1
的列表。 (類似session1 - (10, 20)
,當item1
在數據集中出現10次時,依此類推)。
我得到這個使用以上aggregate
方法。但我希望使用data.table
更快地工作。
直到現在我與data.table嘗試如下:
predictors_data.table <- data.table(predictors)
popularity <- predictors_data.table[ , list(p = table(predictors_data.table$item_id[items_list %in% item_id])),
by = c('session_id')]
但我只得到計數的第一個項目,而不是所有的項目爲一個特定的會話。
請顯示一個小數據。例如,與所期望的結果。另外,我建議從新的[簡介data.table](https://github.com/Rdatatable/data.table/wiki/Getting-started)HTML小插圖開始。它應該只需要大約10分鐘... – Arun