كيفية حساب المبلغ التراكمي لكل مجموعة في r
يمكنك استخدام الطرق التالية لحساب المجموع التراكمي لكل مجموعة في R:
الطريقة الأولى: استخدم Base R
df$cum_sum <- ave(df$values_var, df$group_var, FUN=cumsum)
الطريقة الثانية: استخدم dplyr
library (dplyr)
df %>% group_by(group_var) %>% mutate(cum_sum = cumsum(values_var))
الطريقة الثالثة: استخدام data.table
library (data.table)
setDT(df)[, cum_sum := cumsum(values_var), group_var]
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي في R:
#create data frame df <- data. frame (store=rep(c(' A ', ' B ', ' C '), each= 4 ), sales=c(3, 4, 4, 2, 5, 8, 9, 7, 6, 8, 3, 2)) #view data frame df blind sales 1 to 3 2 to 4 3 to 4 4 to 2 5 B 5 6 B 8 7 B 9 8 B 7 9 C 6 10 C 8 11 C 3 12 C 2
مثال 1: حساب المجموع التراكمي لكل مجموعة باستخدام قاعدة R
يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة ave() في قاعدة بيانات R لحساب المجموع التراكمي للمبيعات ، مجمعة حسب المتجر :
#add column to show cumulative sales by store df$cum_sales <- ave(df$sales, df$store, FUN=cumsum) #view updated data frame df store sales cum_sales 1 to 3 3 2 to 4 7 3 to 4 11 4 to 2 13 5 B 5 5 6 B 8 13 7 B 9 22 8 B 7 29 9 C 6 6 10 C 8 14 11 C 3 17 12 C 2 19
يعرض العمود الجديد المسمى cum_sales المجموع التراكمي للمبيعات ، مجمعة حسب المتجر .
مثال 2: حساب المجموع التراكمي لكل مجموعة باستخدام dplyr
يوضح التعليمة البرمجية التالية كيفية استخدام وظائف مختلفة من حزمة dplyr في R لحساب المجموع التراكمي للمبيعات ، مجمعة حسب المتجر :
library (dplyr) #add column to show cumulative sales by store df %>% group_by(store) %>% mutate(cum_sales = cumsum(sales)) #view updated data frame df # A tibble: 12 x 3 # Groups: store [3] store sales cum_sales 1 to 3 3 2 to 4 7 3 to 4 11 4 to 2 13 5 B 5 5 6 B 8 13 7 B 9 22 8 B 7 29 9 C 6 6 10 C 8 14 11 C 3 17 12 C 2 19
يعرض العمود الجديد المسمى cum_sales المجموع التراكمي للمبيعات ، مجمعة حسب المتجر .
مثال 3: حساب المجموع التراكمي حسب المجموعة باستخدام data.table
يوضح التعليمة البرمجية التالية كيفية استخدام وظائف مختلفة من حزمة data.table في R لحساب المجموع التراكمي للمبيعات ، مجمعة حسب المتجر :
library (data.table) #add column to show cumulative sales by store setDT(df)[, cum_sales := cumsum(sales), store] #view updated data frame df store sales cum_sales 1: A 3 3 2: A 4 7 3: A 4 11 4: A 2 13 5: B 5 5 6: B 8 13 7: B 9 22 8: B 7 29 9: C 6 6 10: C 8 14 11: C 3 17 12: C 2 19
يعرض العمود الجديد المسمى cum_sales المجموع التراكمي للمبيعات ، مجمعة حسب المتجر .
ملاحظة : جميع الطرق الثلاثة تعطي نفس النتيجة. ومع ذلك، تميل أساليب dplyr وdata.table إلى أن تكون أسرع عند العمل مع إطارات بيانات كبيرة جدًا.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إجراء العمليات الحسابية الشائعة الأخرى في R:
كيفية حساب المبلغ حسب المجموعة في R
كيفية حساب المتوسط لكل مجموعة في R
كيفية حساب الانحراف المعياري حسب المجموعة في R