根据最近3个月的数据汇总

巴厘罗汉(Rohan Bali)

数据如下:

a <- rep('A',6)
b <- rep('B',6)
c <- c('2020-10-01','2020-09-01','2020-01-01','2020-03-10','2020-11-01','2020-08-01')
d <- c(1,2,3,4,5,6)
df <- data.frame(a,b,c,d)


df1 <- df %>%
       group_by(a,b) %>%
       summarise(d=mean(d)) ###### Summarise 'd' of only the latest 3 months

“ a”和“ b”列应分组在一起,并且“ d”列应根据最近3个月的“日期”列进行汇总。

每个小组应持续最近的3个月。无法筛选出过去3个月的全部数据。每个小组应有最近三个月的时间

“最近3个月。因此应选择'2020-11-01','2020-10-01'和'2020-09-01'。因为它们是DF中的最近3个月”

弹力球

使用基数R。我们将数据除以ab因子,然后选择最近三个月(对于每个a / b分组),然后基于最近三个月对每个a / b分组进行平均,然后rbind一起返回:

df$c <- as.Date(df$c) # convert to date

do.call("rbind", 
        lapply(split(df, list(df$a, df$b)),
               FUN = function(dat) aggregate(d ~ a + b, 
                                     data = tail(dat[order(dat$c),], 3), 
                                     FUN = mean)))

使用类似的想法(分组,排序,然后拖尾) data.table

library(data.table)
setDT(df)[order(c), tail(.SD, 3), .(a, b)][,.(mean_d = mean(d)), .(a, b)]

   a b   mean_d
1: A B 2.666667

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询以获取最近3个月的数据

来自分类Dev

最近13个月的数据

来自分类Dev

在LINQ的最近3个月

来自分类Dev

过滤数据wrt最大日期并提取最近3个月的数据

来自分类Dev

如何从sql表中获取最近3个月的数据

来自分类Dev

按开始日期dplyr分组和过滤最近3个月的数据

来自分类Dev

提取自最近3个月以来未访问过的数据

来自分类Dev

尝试获取最近三个月的数据

来自分类Dev

最近一个月的子集数据

来自分类Dev

使用mysql从最近12个月获取数据

来自分类Dev

Oracle SQL-最近12个月的数据

来自分类Dev

获取最近3个月的日期选择

来自分类Dev

使用php从当前月份获取最近3个月

来自分类Dev

从数据框中选择最近的和最近的第六个月

来自分类Dev

最近12个月使用Javascript

来自分类Dev

最近12个月如何列出

来自分类Dev

SQL最近6个月

来自分类Dev

最近12个月的SQL总和

来自分类Dev

SQL最近6个月

来自分类Dev

最近12个月如何列出

来自分类Dev

最近五个月的排列

来自分类Dev

根据最近三个月的销售额计算不同的客户

来自分类Dev

为什么对纽约证交所1个月的高/低数据不进行这种汇总?

来自分类Dev

从几天到一个月的汇总数据

来自分类Dev

SQL查询获得3个月的数据

来自分类Dev

此数据集最近三个月的总计数是多少?

来自分类Dev

在Postgres中从Db获取最近12个月的数据以及年份

来自分类Dev

SQL Server:将SELECT限制为仅获取最近4周/ 1个月的数据

来自分类Dev

PHP:以格式月份年份的形式获取最近6个月的数据