كيفية حساب الإزاحة لكل مجموعة باستخدام dplyr


يمكنك استخدام بناء الجملة التالي لحساب القيم المتغيرة للمجموعة في R باستخدام حزمة dplyr :

 df %>%
  group_by(var1) %>%
  mutate(lag1_value = lag(var2, n= 1 , order_by=var1))

ملاحظة : تضيف الدالة mutate() متغيرًا جديدًا إلى إطار البيانات الذي يحتوي على القيم المتأخرة.

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: حساب القيم المتغيرة حسب المجموعة باستخدام dplyr

لنفترض أن لدينا إطار البيانات التالي في R الذي يوضح المبيعات التي أجراها متجران مختلفان في أيام مختلفة:

 #create data frame
df <- data. frame (store=c('A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'),
                 sales=c(7, 12, 10, 9, 9, 11, 18, 23))

#view data frame
df

  blind sales
1 to 7
2 B 12
3 to 10
4 B 9
5 to 9
6 B 11
7 to 18
8 B 23

يمكننا استخدام الكود التالي لإنشاء عمود جديد يعرض قيم المبيعات المتأخرة لكل متجر:

 library (dplyr)

#calculate lagged sales by group
df %>%
  group_by(store) %>%
  mutate(lag1_sales = lag(sales, n= 1 , order_by=store))

# A tibble: 8 x 3
# Groups: store[2]
  store sales lag1_sales
1 to 7 NA
2 B 12 NA
3 to 10 7
4 B 9 12
5 to 9 10
6 B 11 9
7 to 18 9
8 B 23 11

وإليك كيفية تفسير النتيجة:

  • القيمة الأولى لـ lag1_sales هي NA لأنه لا توجد قيمة سابقة لمبيعات المتجر أ.
  • القيمة الثانية لـ lag1_sales هي NA لأنه لا توجد قيمة سابقة لمبيعات المتجر ب.
  • القيمة الثالثة لـ lag1_sales هي 7 لأنها قيمة المبيعات السابقة للمتجر أ.
  • القيمة الرابعة لـ lag1_sales هي 12 لأنها قيمة المبيعات السابقة للمتجر B.

وما إلى ذلك وهلم جرا.

لاحظ أنه يمكنك أيضًا تغيير عدد الفترات الزمنية المستخدمة عن طريق تغيير قيمة n في الدالة lag() .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إجراء العمليات الحسابية الشائعة الأخرى في R:

كيفية حساب المبلغ الجاري باستخدام dplyr
كيفية حساب المبلغ حسب المجموعة في R
كيفية حساب المتوسط لكل مجموعة في R

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *