学习data.table
库。这是一个可重现的示例,因此在了解该库的工作原理之后,我可以在大型数据集上使用它。
这是一个数据框。
dt = data.table(b=c('ford','honda','mercendes','ford','honda','mercendes'),
co=c('blue','purple','yellow','bluef','purplef','yellowf'),
mo=c(11230,13444,NaN,10000,10000,NaN),
dates = c('2018-09-03','2018-09-03','2018-09-04','2018-09-04','2018-09-05','2018-09-05'))
我想按日期分组: 通常会这样做:
aggregate(dt$mo, by=list(dt$dates), sum)
Group.1 x
1 2018-09-03 24674
2 2018-09-04 NaN
3 2018-09-05 NaN
但是如何在data.table中进行操作,以及是否需要每天,每周或每月显示?
答案 0 :(得分:1)
加载数据
dt = data.table(b=c('ford','honda','mercendes','ford','honda','mercendes'),
co=c('blue','purple','yellow','bluef','purplef','yellowf'),
mo=c(11230,13444,NaN,10000,10000,NaN),
dates = c('2018-09-03','2018-09-03','2018-09-04','2018-09-04','2018-09-05','2018-09-05'))
每周
dt[, .(count = .N), by = .(week = paste0(week(dates), "_", year(dates)))]
> week count
> 1: 36_2018 6
每月
dt[, .(count = .N), by = .(month = paste0(month(dates), "_", year(dates)))]
> month count
> 1: 9_2018 6
我建议添加“年(日期)”,以便您可以将一年中的周/月与另一年区分开。
希望有帮助