كيفية حساب الانحراف المعياري حسب المجموعة في r (مع أمثلة)
يمكنك استخدام أي من الطرق التالية لحساب الانحراف المعياري حسب المجموعة في R:
الطريقة الأولى: استخدام قاعدة R
aggregate(df$col_to_aggregate, list(df$col_to_group_by), FUN=sd)
الطريقة الثانية: استخدم dplyr
library (dplyr)
df %>%
group_by(col_to_group_by) %>%
summarise_at(vars(col_to_aggregate), list(name=sd))
الطريقة الثالثة: استخدام data.table
library (data.table)
setDT(df)
dt[ ,list(sd=sd(col_to_aggregate)), by=col_to_group_by]
توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع إطار البيانات التالي في R:
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 6 ),
points=c(8, 10, 12, 12, 14, 15, 10, 11, 12,
18, 22, 24, 3, 5, 5, 6, 7, 9))
#view data frame
df
team points
1 to 8
2 to 10
3 to 12
4 to 12
5 to 14
6 to 15
7 B 10
8 B 11
9 B 12
10 B 18
11 B 22
12 B 24
13 C 3
14 C 5
15 C 5
16 C 6
17 C 7
18 C 9
الطريقة الأولى: حساب الانحراف المعياري حسب المجموعة باستخدام قاعدة R
يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة Aggregate() لقاعدة بيانات R لحساب الانحراف المعياري للنقاط التي سجلها الفريق:
#calculate standard deviation of points by team
aggregate(df$points, list(df$team), FUN=sd)
Group.1 x
1 A 2.562551
2 B 6.013873
3 C 2.041241
الطريقة الثانية: حساب الانحراف المعياري حسب المجموعة باستخدام dplyr
يوضح التعليمة البرمجية التالية كيفية استخدام الدالتين group_by () و summarise_at() من حزمة dplyr لحساب الانحراف المعياري للنقاط التي سجلها الفريق:
library (dplyr)
#calculate standard deviation of points scored by team
df %>%
group_by(team) %>%
summarise_at(vars(points), list(name=sd))
# A tibble: 3 x 2
team name
1 to 2.56
2 B 6.01
3C 2.04
الطريقة الثالثة: حساب الانحراف المعياري حسب المجموعة باستخدام data.table
يوضح الكود التالي كيفية حساب الانحراف المعياري للنقاط التي سجلها الفريق باستخدام الوظائف الموجودة في حزمة data.table :
library (data.table)
#convert data frame to data table
setDT(df)
#calculate standard deviation of points scored by team
df[,list(sd=sd(points)), by=team]
team sd
1: A 2.562551
2: B 6.013873
3:C2.041241
لاحظ أن الطرق الثلاثة جميعها ترجع نفس النتائج.
ملاحظة : إذا كنت تعمل باستخدام إطار بيانات كبير للغاية، فمن المستحسن استخدام أسلوب dplyr أو data.table لأن هذه الحزم تعمل بشكل أسرع بكثير من قاعدة R.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية حساب المتوسط لكل مجموعة في R
كيفية حساب المبلغ حسب المجموعة في R
كيفية حساب الكميات حسب المجموعة في R