برمجة R / أسس اللغة والبيانات / الدرس 2
المتجهات والأنواع والتحويل وإعادة التدوير
صرح بقواعد المتجهات حتى لا يغير الحساب المريح معنى البيانات بصمت.
في هذه الصفحة
أهداف الدرس
- فحص الأنواع الذرية والتحويل المقصود.
- توقع إعادة التدوير في الحساب العنصري.
- حماية عقود القيم المفردة والأزواج بالتحقق.
للمتجه الذري نوع داخلي واحد
يخزن المتجه الذري الأساسي عناصره بنوع مشترك مثل المنطقي أو الصحيح أو العشري أو النصي. تشير اللاحقة L إلى ثابت صحيح، بينما تكون الثوابت العددية العادية مثل 2 غالباً عشرية. قد يجمع المزج الأنواع في تمثيل واحد؛ وهو مفيد عمداً وخطير إذا حول رمز نصي عرضي عموداً عددياً كله إلى نص. يختلف النوع عن الصنف والصفات الأخرى. افحص typeof والطول وقيماً ممثلة قبل افتراض أن رقماً مطبوعاً مخزن كقياس عددي.
يحتاج التحويل سياسة تفسير
يجمع المثال قيماً صحيحة ورمزاً نصياً فينتج متجه نص. تنجح إعادته إلى أعداد لأن الرموز المعطاة بسيطة ومعروفة. يجب أن يحدد الاستيراد الفعلي معنى الفراغ والفاصل العشري والوحدات والنص غير الصالح. افحص تحذير التحويل بدلاً من إسكاتِه. ولتحويل العامل عبر as.numeric معنى آخر: يعيد رموز الفئات الداخلية لا تحليل وسومها. احفظ الرمز الأصلي بجوار القيمة عند التشخيص، واحسب القيم المفقودة التي أدخلها التحويل حتى لا تمحو التنقية مشاهدات بصمت.
x <- c(2L, 4L, 6L)
combined <- c(x, "8")
cat("x type=", typeof(x), "; combined type=", typeof(combined), "\n", sep = "")
cat("sum=", sum(x), "; count=", length(x), "\n", sep = "")
cat("converted=", paste(as.numeric(combined), collapse = ","), "\n", sep = "")
x type=integer; combined type=character
sum=12; count=3
converted=2,4,6,8
للمتجه الذري نوع مشترك؛ ولا يبرر التحويل هنا إلا معرفة أن جميع النصوص رموز عددية صالحة.
قد تعيد العملية العنصرية تدوير القيم
تكرر حسابات R الأساسية المتجه الأقصر لمحاذاته مع الأطول. يضيف المثال نمط إزاحة بطول اثنين إلى أربع قيم. لأن الطول الأقصر يقسم الأطول تماماً فقد يحدث ذلك دون تحذير؛ فغياب التحذير لا يثبت صحة الأزواج. قد تصح إزاحة عددية واحدة لكل المشاهدات، ولا يصح تطبيق نمط حساسَين على صفوف اعتباطية. حدد هل تقبل العملية قيمة مفردة أو قيمة لكل مشاهدة أو نمطاً متكرراً صريحاً قبل اختيار التعبير.
x <- c(10, 20, 30, 40)
offset <- c(1, 2)
cat("recycled=", paste(x + offset, collapse = ","), "\n", sep = "")
add_same_length <- function(a, b) {
stopifnot(is.numeric(a), is.numeric(b), length(a) == length(b))
a + b
}
cat("paired=", paste(add_same_length(c(10, 20), c(1, 2)), collapse = ","), "\n", sep = "")
recycled=11,22,31,42
paired=11,22
تعيد الحسابات الأساسية تدوير المتجه الأقصر؛ ويمنع عقد تساوي الأطوال ذلك للقياسات المزدوجة.
ميز الحساب العنصري عن التجميع
يعمل + و* عنصراً بعنصر، بينما يجمع sum وmean. يبقى * ضرباً عنصرياً للمصفوفة، ويعني %*% ضرب المصفوفات. تعيد المقارنات متجهات منطقية تصلح أقنعة اختيار. على دالة تتوقع عتبة واحدة رفض متجه عتبات بدلاً من تدويره عرضاً. وللمتجه الفارغ حد مستقل: قد يكون للمجموع عنصر هوية، بينما لا يوجد متوسط مشاهدات فارغة. افحص الحجم المقصود ولا تعتبر كل ناتج فارغ معرف رياضياً جواباً مجالياً مفيداً.
للمساواة العددية معان مختلفة
قد تمثل الأعداد العائمة القياسات تقريبياً؛ فلا تلائم المساواة التامة كل حساب. يفحص identical خصائص هوية صارمة ومنها النوع، ويقدم all.equal مقارنة وصفية للفروق التقريبية ويغلف عادة بـ isTRUE للحصول على قرار منطقي. اختر السماحية وفق الوحدات والحساب لا ثابتاً منسوخاً. افصل أعداد العد ومعرفات الفئات والقياسات التقريبية مفاهيمياً. تتجنب الأمثلة غموض العرض وتبين حساباً صغيراً؛ ولم ينفذ اختبار R أو معيار دقة عددية عام.
الأخطاء الشائعة وإصلاحها
أصبح العمود العددي نصياً
- لماذا يحدث؟
- فرض رمز نصي نوعاً ذرياً مشتركاً.
- كيف تصلحه؟
- افحص الرموز الأصلية وحول بسياسة تحليل صريحة.
- كيف تتجنب تكراره؟
- تحقق من الأنواع بعد الاستيراد وعد فشل التحويل.
أعطى حساب الأزواج نتائج معقولة وخاطئة
- لماذا يحدث؟
- أعيد تدوير متجه أقصر دون مخالفة قابلية القسمة.
- كيف تصلحه؟
- اطلب تساوي الأطوال أو قيمة مفردة مسموحة صراحة.
- كيف تتجنب تكراره؟
- اختبر أطوالاً مختلفة حتى عندما يقسم أحدها الآخر.
تحولت وسوم الفئات إلى أعداد غير متوقعة
- لماذا يحدث؟
- طبق as.numeric على عامل مباشرة.
- كيف تصلحه؟
- استخدم الوسوم وسياسة تحليل أو ربط مبررة.
- كيف تتجنب تكراره؟
- ميز العامل عن القياس قبل التحويل.
اختبر فهمك
1. توقع c(1,2,3,4,5,6) + c(10,20,30). هل تقبله دالة أزواج؟
اعرض الحل المشروح
تكرر R الإزاحات فتنتج 11,22,33,14,25,36. يجب على دالة تعد بإزاحة مقابلة لكل مشاهدة رفض اختلاف الطولين ولو لم يظهر تحذير. قد تقبله دالة نمط دوري مقصودة إذا نص عقدها عليه.
2. لماذا لا يكفي إسكات تحذير التحويل؟
اعرض الحل المشروح
يخفي دليلاً على رموز لم تناسب التفسير العددي دون إصلاح معناها. افحصها وحدد هل هي غير صالحة أم تتبع اصطلاحاً آخر، واعرض الفقد الناتج. اختر بعدها تطبيعاً أو رفضاً متحققاً منه.
أهم ما تعلمته
- يشترك المتجه الذري في نوع داخلي واحد.
- قد يكون التدوير الصامت خاطئاً للمهمة.
- اختر المساواة وفق النوع والوحدة والدقة.