R计算逐年的每周值变化(并发其他并发症)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R计算逐年的每周值变化(并发其他并发症)相关的知识,希望对你有一定的参考价值。

我有一个每日价值数据集。范围从2018年12月1日到2020年4月1日。

这些列是“日期”和“值”。如此处所示:

date <- c("2018-12-01","2000-12-02", "2000-12-03",
     ...
      "2020-03-30","2020-03-31","2020-04-01")

value <- c(1592,1825,1769,1909,2022, .... 2287,2169,2366,2001,2087,2099,2258)

df <- data.frame(date,value)

[我想做的是按周求和,然后计算从当前年度到上一年的每周变化。

我知道我可以使用以下功能按周总计:

Data_week <-  df%>% group_by(category ,week = cut(date, "week")) %>% mutate(summed= sum(value))

我的问题是双重的:

1)如何按周求和,然后操纵数据框,以便可以计算每周变化(例如,2019年12月1日一周/ 2018年12月1日一周)。

2)上面如何做,但是要使用“自定义”星期。假设我要定义一个星期,即从我拥有数据的最近日期算起向后移动7天。例如。我应该拥有的最近一周是从3月26日开始的一周(4月1日-7天)。

答案

我们可以使用lag中的dplyr提供帮助。

library(dplyr)
library(lubridate)
df %>% 
  mutate(year = year(date)) %>%
  group_by(week = week(date),year) %>%
  summarize(summed = sum(value)) %>%
  arrange(year, week) %>%
  ungroup %>%
  mutate(change = summed - lag(summed))
#    week  year summed  change
#   <dbl> <dbl>  <dbl>   <dbl>
# 1    48  2018  3638.     NA 
# 2    49  2018 15316.  11678.
# 3    50  2018 13283.  -2033.
# 4    51  2018 15166.   1883.
# 5    52  2018 12885.  -2281.
# 6    53  2018  1982. -10903.
# 7     1  2019 14177.  12195.
# 8     2  2019 14969.    791.
# 9     3  2019 14554.   -415.
#10     4  2019 12850.  -1704.
#11     5  2019  1907. -10943.

数据

set.seed(1)
df <- data.frame(date = seq.Date(from = as.Date("2018-12-01"), to = as.Date("2019-01-29"), "days"), value = runif(60,1500,2500))

以上是关于R计算逐年的每周值变化(并发其他并发症)的主要内容,如果未能解决你的问题,请参考以下文章

goroutine简介

golang代码片段(摘抄)

golang goroutine例子[golang并发代码片段]

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

如何从设置中获取数据并发送到此片段

线程学习知识点总结