كيفية تجميع البيانات حسب الأسبوع في r (مع مثال)
يمكنك استخدام الدالة strftime() في قاعدة R مع الوسيطة ” %V ” لتجميع البيانات حسب الأسبوع في R.
تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:
df$week_num <- strftime(df$date, format = " %V ")
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: تجميع البيانات حسب الأسبوع في R
لنفترض أن لدينا إطار البيانات التالي في R الذي يعرض إجمالي مبيعات عنصر ما في تواريخ مختلفة:
#create data frame df <- data. frame (date=as. Date (c('1/8/2022', '1/9/2022', '2/10/2022', '2/15/2022', '3/5/2022', '3/22/2022', '3/27/2022'), '%m/%d/%Y'), sales=c(8, 14, 22, 23, 16, 17, 23)) #view data frame df dirty date 1 2022-01-08 8 2 2022-01-09 14 3 2022-02-10 22 4 2022-02-15 23 5 2022-03-05 16 6 2022-03-22 17 7 2022-03-27 23
يمكننا استخدام الكود التالي لإضافة عمود يعرض رقم الأسبوع لكل تاريخ:
#add column to show week number
df$week_num <- strftime(df$date, format = " %V ")
#view updated data frame
df
date sales week_num
1 2022-01-08 8 01
2 2022-01-09 14 01
3 2022-02-10 22 06
4 2022-02-15 23 07
5 2022-03-05 16 09
6 2022-03-22 17 12
7 2022-03-27 23 12
ملاحظة : وفقًا للوثائق، هذه هي الطريقة التي يحسب بها %V% أرقام التاريخ: “رقم الأسبوع من السنة (الاثنين باعتباره أول يوم في الأسبوع) كرقم عشري [01,53].” إذا كان الأسبوع الذي يحتوي على 1 يناير يحتوي على أربعة أيام أو أكثر في العام الجديد، فإنه يعتبر الأسبوع 1. وإلا فهو الأسبوع الأخير من العام السابق والأسبوع التالي هو الأسبوع 1.
بمجرد إنشاء هذا العمود الجديد، يمكننا تجميع القيم بناءً على رقم الأسبوع.
على سبيل المثال، يمكننا استخدام الكود التالي لحساب مجموع المبيعات، مجمعة حسب الأسبوع:
library (dplyr)
#calculate sum of sales, grouped by week
df %>%
group_by(week_num) %>%
summarize(total_sales = sum(sales))
# A tibble: 6 x 2
week_num total_sales
1 01 22
2 06 22
3 07 23
4 09 16
5 12 40
ومن النتيجة يمكننا أن نرى:
- وكان مجموع المبيعات في الأسبوع 1 22 .
- وكان مجموع المبيعات في الأسبوع 6 22 .
- وكان مجموع المبيعات في الأسبوع 7 23 .
وما إلى ذلك وهلم جرا.
يمكننا أيضًا استخدام مقياس آخر لتجميع البيانات.
على سبيل المثال، يمكننا استخدام الكود التالي لحساب متوسط المبيعات، مجمعة حسب الأسبوع:
library (dplyr)
#calculate mean of sales, grouped by week
df %>%
group_by(week_num) %>%
summarize(mean_sales = mean(sales))
# A tibble: 5 x 2
week_num mean_sales
1 01 11
2 06 22
3 07 23
4 09 16
5 12 20
ومن النتيجة يمكننا أن نرى:
- وكان متوسط المبيعات في الأسبوع 1 11 .
- وكان متوسط المبيعات في الأسبوع 6 22 .
- وكان متوسط المبيعات في الأسبوع 7 23 .
وما إلى ذلك وهلم جرا.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تجميع البيانات حسب الشهر فيR
كيفية استخراج السنة من التاريخ في R
كيفية استخراج الشهر من التاريخ في R
كيفية فرز إطار البيانات حسب التاريخ في R