r - 将每日数据转换为每周数据
问题描述
我有一个包含商店销售数据的数据集。所有这些数据均按 2017 年 1 月 3 日至 2017 年 2 月 28 日期间的天数排序。您可以使用下面的代码查看数据。
Retail_data<-structure(list(Date = structure(c(17169, 17170, 17171, 17175,
17176, 17177, 17178, 17179, 17182, 17183, 17184, 17186, 17189,
17190, 17191, 17192, 17193, 17196, 17197, 17198, 17199, 17200,
17203, 17204, 17205, 17206, 17207, 17210, 17211, 17212, 17213,
17214, 17217, 17218, 17219, 17220, 17221, 17224, 17225), class = "Date"),
Total = c(159.819319574035, 100.513902446432, 100.671026272139,
89.636183769411, 83.6930701040745, 50.3122378901428, 168.724058301167,
238.800990976061, 174.047961286308, 84.90480213602, 96.6327944162119,
198.946303771984, 105.202376612078, 75.2787425638002, 104.345665072145,
79.3962021603985, 96.9288749986742, 109.459300949634, 98.8901916978113,
116.830828411901, 160.725242652099, 144.215440635792, 165.263571423151,
74.8805575755291, 81.7886071569258, 118.973870995785, 166.751119591335,
146.121855191265, 141.303447982398, 339.790780448282, 120.55636917013,
111.891755247442, 127.68032568788, 100.554207486355, 101.004546687007,
107.784324411847, 87.4254774508288, 156.928775220726, 118.774701116953
)), row.names = c(NA, -39L), class = c("tbl_df", "tbl", "data.frame"
))
所以下一步是将所有这些数据从每日数据转换为每周数据。
DATE_MATRIX<-seq.Date(as.Date("2017-01-03"), as.Date("2017-02-28"), by = "day")
Sys.setlocale("LC_TIME", "English")
DATE_MATRIX1<-weekdays(DATE_MATRIX)
library(lubridate)
library(data.table)
DATE_MATRIX_FINAL<-data.frame(Date = DATE_MATRIX, Weekdays = DATE_MATRIX1,week_number=week(DATE_MATRIX),Year= lubridate::year(DATE_MATRIX))
View(DATE_MATRIX_FINAL)
我尝试使用此代码,但不幸的是,此代码从周二到周一开始计算周数。这种计数不好,我想修复它以便从周一到周日开始计算周数。所以任何人都可以帮我解决这个问题代码 ?PS 与此数据集的数据未合并。我将在之后管理它。
解决方案
您可以获取周数,然后获取每周sum
的Total
值。
aggregate(Total~year_week,
transform(Retail_data, year_week = format(Date, "%Y %V")), sum)
# year_week Total
#1 2017 01 361.0042
#2 2017 02 631.1665
#3 2017 03 554.5319
#4 2017 04 461.1519
#5 2017 05 630.1210
#6 2017 06 607.6577
#7 2017 07 859.6642
#8 2017 08 524.4489
#9 2017 09 275.7035
使用dplyr
:
library(dplyr)
Retail_data %>%
group_by(year_week = format(Date, "%Y %V")) %>%
summarise(Total = sum(Total))
推荐阅读
- django - 在没有聚合 Django-rest-framework 的注释减去后查找平均值
- javascript - Express/Mongoose 路线总是更新同一个项目
- javascript - 如何支持 docusaurus 维护的旧版本文档的更改
- deployment - 如何在 WSO2 Identity Server 中包含环境变量的 deployment.properties 文件?
- reactjs - React:react是否真的在一个reflow周期内完成所有更新
- c++ - 如何在 C++ 中单行输入 char 数组?
- firebase - 我是否需要操作自己的服务器来使用 Firebase Admin SDK
- html - 某些分辨率中的边界元素位置中断
- python - 评估函数指针列并将结果保存在 Pandas 中
- html - 表头已修复,但边框在 chrome 上移动并且不会出现在 Firefox 上