محتويات الدورة

برمجة R / أسس اللغة والبيانات / الدرس 3

الفهرسة والفقد وحفظ الشكل

اختر المشاهدات المطلوبة دون ضياع الأبعاد أو تحويل الشروط المجهولة إلى صفوف عرضية.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • استخدام الفهارس الموجبة والسالبة والمنطقية والمسماة.
  • تمييز القيم المفقودة عن النصوص وNaN.
  • حفظ أبعاد المصفوفات وإطارات البيانات عند الحاجة.

للاختيار عقد ترتيب وتغطية

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

يختلف استخراج العنصر عن اختيار الجزء

في الكائنات الشبيهة بالقوائم يختار [ جزءاً، ويستخرج [[ عنصراً داخلياً واحداً. يستخدم $ اسماً حرفياً وقد يسمح بالمطابقة الجزئية في سياقات، فاحرص على الاستخراج البرمجي الدقيق. قد يسقط اختيار مصفوفة أو إطار بيانات بعداً عند بقاء صف أو عمود واحد. استخدم drop=FALSE عندما يتطلب المستدعي بنية ثنائية الأبعاد، واختبر الحالات المفردة. قد تصل الأعداد نفسها ببنية مختلفة لعملية لاحقة فتفشل أو تحسب على محور خاطئ.

r برنامج توضيحي بلغة R الأساسية؛ لم تتوفر بيئة R أثناء المراجعة
x <- c(alpha = 10, beta = 20, gamma = 30)
cat("positive=", paste(x[c(3L, 1L)], collapse = ","), "\n", sep = "")
cat("negative=", paste(x[-2L], collapse = ","), "\n", sep = "")
cat("named=", x[["beta"]], "\n", sep = "")
cat("empty length=", length(x[integer(0)]), "\n", sep = "")
الناتج المتوقع
positive=30,10
negative=10,30
named=20
empty length=0

تختار الفهارس الموجبة وترتب، وتستبعد السالبة، ويستخرج الاسم عنصراً واحداً، ولا يختار الفهرس الفارغ شيئاً.

للفقد حالة ومنطق

تعني NA معلومة مفقودة وتختلف عن النص "NA". تعني NaN نتيجة عددية غير معرفة وتكشفها is.na أيضاً، وتميزها is.nan، بينما تستبعد is.finite اللانهاية كذلك. لا يختبر التساوي مع NA الفقد لأن مقارنة المجهول مجهولة غالباً. استخدم is.na وسياسة صريحة. قد تحسم العملية المنطقية النتيجة رغم مجهول، مثل خطأ AND مجهول الذي يساوي خطأ. يوضح ذلك إمكان استبعاد الفقد بقناع مناسب دون اختراع قيمة له.

قد تدخل المقارنة المجهولة في الجزء المختار

يفرض قناع المثال وجود القيمة ثم تجاوز العتبة. قد يعيد القناع الذي يحتوي NA عناصر مجهولة بدلاً من حذفها. يحسب المتوسط بـ na.rm=TRUE ويعرض عدد المرصودات مع العدد الأصلي. هذه سياسة فقد وليست إصلاحاً إحصائياً تلقائياً؛ فقد لا يمثل متوسط المرصودات المجتمع إذا ارتبط الفقد بالقياس أو عملية الجمع. تحتاج مجموعة مفقودة بالكامل نتيجة محددة أو رفضاً صريحاً، لا NaN غير مشروح.

r برنامج توضيحي بلغة R الأساسية؛ لم تتوفر بيئة R أثناء المراجعة
x <- c(5, NA_real_, 15)
keep <- !is.na(x) & x > 7
cat("selected=", paste(x[keep], collapse = ","), "\n", sep = "")
cat("observed=", sum(!is.na(x)), "; total=", length(x), "\n", sep = "")
cat("observed mean=", mean(x, na.rm = TRUE), "\n", sep = "")
cat("unknown comparison=", is.na(x[2] > 7), "\n", sep = "")
الناتج المتوقع
selected=15
observed=2; total=3
observed mean=10
unknown comparison=TRUE

يفحص الفقد صراحة؛ للمتوسط مشاهدتان ولا يعامل القيمة الثالثة كصفر.

افحص حدود الاختيار صراحة

اختبر الفراغ ومشاهدة واحدة وتكرار الفهارس والأسماء المجهولة والأقنعة المفقودة والاختيار الكامل. وحّد طول القناع والكائن كي لا يعيد التدوير اختيار مواضع خاطئة. حدد هل الاسم غير المعروف خطأ أم نتيجة مفقودة متوقعة وفق العملية. احسب الباقي والمحذوف واحفظ أسباب الاستبعاد. يكمل فحص الشكل فحص العدد؛ فلا يكشف عدد صحيح إعادة ترتيب هدف خاطئة، ولا تكشف أبعاد متطابقة أسماء خاطئة. تعرض الأمثلة سلوكاً متوقعاً موثقاً دون تنفيذ R.

الأخطاء الشائعة وإصلاحها

أعاد المرشح قيماً مفقودة إضافية

لماذا يحدث؟
احتوى القناع المنطقي قيماً مجهولة.
كيف تصلحه؟
ابن قناعاً يفرض الرصد والشرط أو سياسة أخرى موثقة.
كيف تتجنب تكراره؟
افحص فقد المدخل وطول القناع وقيم NA فيه.

تعطل الحساب الثنائي بعد اختيار عمود واحد

لماذا يحدث؟
أسقط الاختيار بعداً.
كيف تصلحه؟
استخدم drop=FALSE عند اشتراط مصفوفة أو إطار بيانات.
كيف تتجنب تكراره؟
اختبر الصفوف والأعمدة الفارغة والمفردة والمتعددة.

لم يكشف x == NA القياسات المفقودة

لماذا يحدث؟
المقارنة مع مجهول مجهولة.
كيف تصلحه؟
استخدم is.na وميز NaN وغير المنتهي عند الحاجة.
كيف تتجنب تكراره؟
أدرج اختبار الفقد الصريح في عقد المدخل.

اختبر فهمك

1. للمتجه x=c(8,NA,12)، ما عدد المرصودات ومتوسطها؟

اعرض الحل المشروح

يوجد قياسان مرصودان ومتوسطهما عشرة، والعدد الأصلي ثلاثة. يظهر عرض العددين سياسة الفقد. تعطي إحلال الصفر القيمة 20/3 وتعرف قياساً آخر غير مبرر ما لم يكن للصفر معنى مجالي صريح.

2. لماذا تختبر دالة اختيار أعمدة حالة العمود الواحد؟

اعرض الحل المشروح

قد يبسط الاختيار الافتراضي الناتج إلى متجه رغم توقع الخطوة التالية بنية ثنائية. افحص الصنف والأبعاد والقيم، واستخدم drop=FALSE وفق العقد. لا يكشف مثال ذو عمودين هذا الحد.

أهم ما تعلمته

  • قد يعيد الاختيار الترتيب والتكرار والاستبعاد والتبسيط.
  • تحتاج القيم المجهولة منطقاً صريحاً.
  • احفظ البنية وهوية المشاهدة معاً.

المراجع الرسمية