ج: كيفية العثور على أقرب قيمة في المتجه
يمكنك استخدام بناء الجملة الأساسي التالي للعثور على أقرب قيمة بين عناصر متجهين في R:
#define cut points cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf) #for each value in vector1, find closest value in vector2 cut(vector1, breaks=cuts, labels=vector2)
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: العثور على أقرب قيمة في المتجه في R
لنفترض أن لدينا المتجهين التاليين في R:
#definevectors
vector1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vector2 <- c(3, 5, 8, 11)
لنفترض الآن أنه لكل قيمة في المتجه الأول، نريد إيجاد أقرب قيمة في المتجه الثاني.
يمكننا استخدام بناء الجملة التالي للقيام بذلك:
#define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)
#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)
[1] 3 3 3 3 5 5 8 8 8 11
وإليك كيفية تفسير النتيجة:
- بالنسبة للقيمة الأولى لـ Vector1 (1)، فإن أقرب قيمة إلى Vector2 هي 3 .
- بالنسبة للقيمة الثانية لـ Vector1 (2)، فإن أقرب قيمة إلى Vector2 هي 3 .
- بالنسبة للقيمة الثالثة لـ Vector1 (3)، فإن أقرب قيمة إلى Vector2 هي 3 .
- بالنسبة للقيمة الرابعة لـ Vector1 (4)، فإن أقرب قيمة إلى Vector2 هي 3 .
- بالنسبة للقيمة الخامسة لـ Vector1 (5)، فإن أقرب قيمة إلى Vector2 هي 5 .
وما إلى ذلك وهلم جرا.
ملحوظة : تفترض هذه الطريقة أن قيم المتجه الثاني تتزايد بشكل صارم. إذا لم تكن قد قمت بذلك بالفعل، فقد تحتاج إلى فرز المتجه الثاني أولاً.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية حساب المتوسط لكل مجموعة في R
كيفية حساب المتوسط على الأعمدة في R
كيفية جمع أعمدة محددة في R