[英]Grouping by columns and rows in data.table in r
我很抱歉,如果這是基本的(我確定是這樣),那么我還是無法在任何地方找到答案。
我有一個數據集,顯示大約有500,000行和30列的單個產品銷售,包括區域,銷售金額和日期。 我正在使用基本的data.table功能基於單個組創建匯總,例如按日期銷售和按地區銷售(即DT [,sum(Sales),by = Date]),如下所示:
Date Sales
12/1 50,000
12/2 70,000
12/3 40,000
和
Region Sales
North 67000
East 60000
South 15000
West 22000
我想做的是(例如)按地區和日期細分銷售情況,例如:
12/1 12/2 12/3
North 10,000 15,000 12,000
East 5,000 25,000 30,000
South 2,000 3,000 10,000
West 6,000 7,000 9,000
我希望能夠對文件中包含的所有日期執行此操作(因此,我不必每次對不同的數據集和日期運行此操作時都不需要手動更改它)。 使用data.table或其他方式可能嗎?
謝謝!
對於大型數據集, dcast
的data.table
應該是有效的。
dcast(DT, Region~Date, value.var="Sales", sum)
注意:在這里,我們假設“銷售”為numeric
類。 根據示例中顯示的數據,
數字之間存在。 因此,它可以是非數字的。 如果非數字,轉換成numeric
去掉后,
DT[, Sales := as.numeric(gsub(",", "", Sales))]
然后做dcast
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.