كيفية حساب الإزاحة لكل مجموعة باستخدام 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