簡體   English   中英

按R中data.table中的列和行分組

[英]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或其他方式可能嗎?

謝謝!

對於大型數據集, dcastdata.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM