gpt4 book ai didi

datetime - 在 R 中聚合每周数据

转载 作者:行者123 更新时间:2023-12-03 22:28:54 24 4
gpt4 key购买 nike

我确信这是直截了当的,但我似乎无法让它发挥作用。我有一个代表每日总数的数据框。我只想按周对总数求和,如果没有表示一周,则保留零。 R中最好的方法是什么?万一这很重要,我从 CSV 中读取数据并在 R 中将其转换为日期。

这是我的数据框 p1 的结构:

'data.frame':   407 obs. of  2 variables:
$ date:Class 'Date' num [1:407] 14335 14336 14337 14340 14341 ...
$ amt : num 45 150 165 165 45 45 150 150 15 165 ...

还有前几个……

> head(p1)
date amt
1 2009-04-01 45
2 2009-04-02 150
3 2009-04-03 165
4 2009-04-06 165
5 2009-04-07 45
6 2009-04-08 45

提前非常感谢。

一个注释:我看到了一个以前的post但无法让它工作

最佳答案

lubridate 库的解决方案:

library(lubridate)
Lines <- "date,amt
2009-04-01,45
2009-04-02,150
2009-04-03,165
2009-04-13,165
2009-04-14,45
2009-04-15,45
2009-05-15,45"
df <- read.csv(textConnection(Lines))

如果您不需要 0 来表示缺少的周数,这很简单:

weeks <- week(df$date)
sums <- tapply(df$amt, weeks, sum)
# 14 15 16 20
#360 210 45 45

将缺失的周数归零:

span <- min(weeks):max(weeks)
out <- array(0, dim = length(span), dimnames = list(span))
out[dimnames(sums)[[1]]] <- sums
# 14 15 16 17 18 19 20
#360 210 45 0 0 0 45

关于datetime - 在 R 中聚合每周数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com