كيفية تطبيق دالة على كل صف باستخدام dplyr
يمكنك استخدام بناء الجملة الأساسي التالي لتطبيق دالة على كل صف من إطار البيانات في R باستخدام وظائف dplyr:
df %>% rowwise() %>% mutate(mean_value = mean(c(col1, col2, col3), na. rm = TRUE ))
يحسب هذا المثال تحديدًا متوسط قيمة col1 و col2 و col3 لكل صف في إطار البيانات، ولكن يمكنك استبدال الدالة Mean() بأي دالة تريد حساب مقياس مختلف لها.
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا مع إطار البيانات التالي الذي يحتوي على معلومات حول النقاط التي سجلها لاعبو كرة سلة مختلفون في ألعاب مختلفة:
#create data frame df <- data. frame (game1=c(22, 25, 29, 13, 22, 30), game2=c(12, 10, 6, 6, 8, 11), game3=c(NA, 15, 15, 18, 22, 13)) #view data frame df game1 game2 game3 1 22 12 NA 2 25 10 15 3 29 6 15 4 13 6 18 5 22 8 22 6 30 11 13
مثال 1: متوسط أعمدة محددة في كل صف
يوضح التعليمة البرمجية التالية كيفية حساب متوسط قيمة أعمدة game1 و game3 لكل صف في إطار البيانات:
library (dplyr)
#calculate mean of game1 and game3
df %>%
rowwise() %>%
mutate(mean_points = mean(c(game1, game3), na. rm = TRUE ))
# A tibble: 6 x 4
#Rowwise:
game1 game2 game3 mean_points
1 22 12 NA 22
2 25 10 15 20
3 29 6 15 22
4 13 6 18 15.5
5 22 8 22 22
6 30 11 13 21.5
ومن النتيجة يمكننا أن نرى:
- متوسط قيمة game1 وgame3 في الصف الأول هو 22 .
- متوسط قيمة game1 وgame3 في الصف الثاني هو 20 .
- متوسط قيمة game1 وgame3 في الصف الثالث هو 22 .
وما إلى ذلك وهلم جرا.
مثال 2: الحد الأقصى لعدد الأعمدة المحددة في كل صف
يوضح التعليمة البرمجية التالية كيفية حساب الحد الأقصى لقيمة أعمدة game2 و game3 لكل صف في إطار البيانات:
library (dplyr)
#calculate max of game2 and game3
df %>%
rowwise() %>%
mutate(max_points = max(c(game2, game3), na. rm = TRUE ))
# A tibble: 6 x 4
#Rowwise:
game1 game2 game3 max_points
1 22 12 NA 12
2 25 10 15 15
3 29 6 15 15
4 13 6 18 18
5 22 8 22 22
6 30 11 13 13
ومن النتيجة يمكننا أن نرى:
- الحد الأقصى لقيمة game2 وgame3 في الصف الأول هو 12 .
- الحد الأقصى لقيمة game2 وgame3 في الصف الثاني هو 15 .
- الحد الأقصى لقيمة game2 وgame3 في الصف الثالث هو 15 .
وما إلى ذلك وهلم جرا.
مثال 3: الانحراف المعياري لأعمدة محددة في كل صف
يوضح الكود التالي كيفية حساب الانحراف المعياري للقيم في أعمدة game2 و game3 لكل صف في إطار البيانات:
library (dplyr)
#calculate standard deviation of game2 and game3
df %>%
rowwise() %>%
mutate(sd_points = sd(c(game2, game3), na. rm = TRUE ))
# A tibble: 6 x 4
#Rowwise:
game1 game2 game3 sd_points
1 22 12 NA NA
2 25 10 15 3.54
3 29 6 15 6.36
4 13 6 18 8.49
5 22 8 22 9.90
6 30 11 13 1.41
ومن النتيجة يمكننا أن نرى:
- الانحراف المعياري للعبة game2 وgame3 في الصف الأول هو NA (نظرًا لأنه لا يمكن حساب الانحراف المعياري من قيمة واحدة).
- الانحراف المعياري لـ game2 وgame3 في الصف الثاني هو 3.54 .
- الانحراف المعياري للعبة2 و اللعبة3 في الصف الأول 6.36 .
وما إلى ذلك وهلم جرا.
ملاحظة : يمكنك العثور على الوثائق الكاملة للدالة rowwise() في dplyr هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام dplyr:
كيفية حساب القيم المميزة باستخدام dplyr
كيفية الجمع عبر أعمدة متعددة باستخدام dplyr
كيفية استبدال قيم متعددة في إطار البيانات باستخدام dplyr