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计算逐年的每周值变化(并发其他并发症)的主要内容,如果未能解决你的问题,请参考以下文章
golang goroutine例子[golang并发代码片段]
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段