R 数据表按2周或6个月分组

R 数据表按2周或6个月分组,r,data.table,R,Data.table,我有一个data.table,其中有多个列,其中包含项目数、日期等。不过,我希望将一些金额按2周或6个月的时间段进行分组。我已经按周、1个月和季度应用了分组,如下所示: total.national.sales.by.category <- table[, sum(total_price), by= .(week(local_created_day),category)] total.national.

我有一个data.table,其中有多个列,其中包含项目数、日期等。不过,我希望将一些金额按2周或6个月的时间段进行分组。我已经按周、1个月和季度应用了分组,如下所示:

total.national.sales.by.category <- table[, sum(total_price), 
                                          by= .(week(local_created_day),category)]

total.national.sales.by.category如果是
Date
class,一个选项是使用
cut
创建每周分组。根据
?切割日期

断点-切割点向量或数字,给出x将被切割成的间隔数或间隔规格,“秒”、“分钟”、“小时”、“日”、“日”、“周”、“月”、“季度”或“年”中的一个,可选择前面加整数和空格,或后面加“s”。(对于“日期”对象,仅允许使用“日”、“周”、“月”、“季度”和“年”的间隔规范


使用可复制的示例

set.seed(24)   
dt <- data.table(local_created_day = Sys.Date() + 1:48, 
 category = sample(LETTERS[1:4], 48, replace = TRUE), 
 total_price = rnorm(48))
dt[, .(PriceSum = sum(total_price)), by= .(weekgrp = cut(local_created_day,
                breaks = "2 week"),category)]
set.seed(24)
dt
set.seed(24)   
dt <- data.table(local_created_day = Sys.Date() + 1:48, 
 category = sample(LETTERS[1:4], 48, replace = TRUE), 
 total_price = rnorm(48))
dt[, .(PriceSum = sum(total_price)), by= .(weekgrp = cut(local_created_day,
                breaks = "2 week"),category)]