الانتقال إلى المحتوى الرئيسي
الوحدة 3 · الدرس 2 من 26/10 في الدورة~15 min
دروس الوحدة (2/2)

الاستكشاف والتجميع

تم إنشاء R في المقام الأول كبيئة إحصائية، لذلك فهو يوفر العديد من الوظائف المضمنة لتحليل وتلخيص وفهم توزيع البيانات في المتجهات أو الجداول.

الوظائف الإحصائية الأساسية

يتيح لك R حساب المقاييس الرئيسية للمركز بسهولة والانتشار على المتجهات الرقمية:

  • mean(x): حساب الوسط الحسابي للعناصر.
  • median(x): حساب الوسيط (القيمة الوسطى).
  • sd(x): حساب الانحراف المعياري (مقياس لمدى انتشار البيانات).
  • min(x) و max(x): إرجاع الحد الأدنى والحد الأقصى للقيم على التوالي.
R
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")

التعامل مع البيانات المفقودة (NA)

في العالم الحقيقي، غالبًا ما تحتوي مجموعات البيانات على قيم مفقودة، ممثلة في R بواسطة الكيان الخاص NA (غير متوفر).

إذا حاولت حساب المتوسط ​​أو أي تجميع آخر على متجه يحتوي حتى على NA واحد، فسوف يُرجع R NA كنتيجة. لتجاهل القيم المفقودة، يجب عليك تمرير الوسيطة المنطقية na.rm = TRUE (إزالة غير متاحة):

R
temperatures <- c(18, 21, NA, 24, 19)

# This will return NA
print(mean(temperatures))

# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))

ملخص عالمي مع summary()

تعد الدالة summary() أداة قوية توفر نظرة عامة إحصائية كاملة لمتجه أو إطار بيانات كامل، حيث تعرض الحد الأدنى والربيع الأول والوسيط والمتوسط ​​والربيع الثالث والحد الأقصى:

R
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

تجميع البيانات باستخدام aggregate

عند العمل باستخدام إطارات البيانات، من الشائع حساب إحصائيات التلخيص (مثل المتوسط ​​أو المجموع) لمجموعات أو فئات محددة. تعمل الدالة aggregate() في R على تبسيط هذه العملية:

R
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

بناء الجملة salary ~ department يعني "تحليل المتغير salary بناءً على المتغير department". تحدد الوسيطة FUN = mean أننا نريد حساب المتوسط ​​الحسابي لكل مجموعة.

التصفية المتقدمة باستخدام subset

توفر الدالة subset() طريقة بديهية وأنيقة لاستخراج مجموعات فرعية من الصفوف والأعمدة من إطار البيانات، مع تجنب استخدام الأقواس المربعة المعقدة:

R
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)

جربه بنفسك

تمرين#r.m3.l2.e1
المحاولات: 0جارٍ التحميل…

بالنظر إلى درجات الحرارة المتجهة، احسب المتوسط ​​واحفظه في المتغيرmain_temp. ثم احسب الوسيط واحفظه في median_temp.

جارٍ تحميل المحرر…
إظهار التلميح

الولايات المتحدة الأمريكية middle_temp <- متوسط ​​(درجات الحرارة) ومتوسط_درجة الحرارة <- متوسط ​​(درجات الحرارة)

الحل متاح بعد 3 من المحاولات

تمرين#r.m3.l2.e2
المحاولات: 0جارٍ التحميل…

نظرا لمتجه الدرجات الذي يحتوي على قيمة NA، احسب الانحراف المعياري للمتجه باستثناء القيم المفقودة، واحفظه في متغير sd_scores.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم الدالة sd() مع الوسيطة na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)

الحل متاح بعد 3 من المحاولات

تمرين#r.m3.l2.e3
المحاولات: 0جارٍ التحميل…

بالنظر إلى إطار البيانات df، احصل على الملخص الإحصائي لعمود القيم واحفظه في المتغير stats_summary.

جارٍ تحميل المحرر…
إظهار التلميح

استخرج العمود باستخدام عامل التشغيل $ وقم بتمريره إلى Summary(): stats_summary <- Summary(df$values)

الحل متاح بعد 3 من المحاولات

تمرين#r.m3.l2.e4
المحاولات: 0جارٍ التحميل…

بالنظر إلى مبيعات إطار البيانات، استخدم الدالة التجميعية () لحساب المجموع (FUN = مجموع) عمود الإيرادات المجمع حسب عمود المنطقة. احفظ النتيجة في متغير Region_sales.

جارٍ تحميل المحرر…
إظهار التلميح

الاستخدام: Region_sales <- التجميعي (الإيرادات ~ المنطقة، البيانات = المبيعات، FUN = المبلغ)

الحل متاح بعد 3 من المحاولات

تمرين#r.m3.l2.e5
المحاولات: 0جارٍ التحميل…

بالنظر إلى منتجات إطار البيانات، استخدم الدالة subset() لتصفية فقط المنتجات التي تنتمي إلى فئة "الإلكترونيات" (الفئة == "الإلكترونيات") ولها سعر أكبر من 100 (السعر > 100). احفظ النتيجة في المتغير Cheap_electronics.

جارٍ تحميل المحرر…
إظهار التلميح

الاستخدام: إلكترونيات باهظة الثمن <- مجموعة فرعية (المنتجات، الفئة == 'إلكترونيات' والسعر > 100)

الحل متاح بعد 3 من المحاولات