كيفية الإصلاح في r: الخطأ: معرفات مكررة للصفوف
الخطأ الذي قد تواجهه في R هو:
Error: Duplicate identifiers for rows
يحدث هذا الخطأ عند محاولة استخدام وظيفة الانتشار () لنشر قيم عمود واحد أو أكثر في إطار البيانات في الأعمدة الخاصة بهم.
ومع ذلك، يمكن أن يحدث خطأ إذا لم يكن هناك معرف فريد لكل صف، لذلك لا توجد طريقة لتحديد القيم التي تنتمي إلى أي ملاحظات عند تشغيل التوزيع.
يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.
مثال: كيفية إصلاح الخطأ
لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول لاعبي كرة السلة المختلفين:
#create data frame df <- data. frame (player=rep(c(' A ', ' B '), each= 4 ), year=rep(1:4, times= 2 ), assists=c(4, 10, 4, 4, 3, 7, 7, 6), dots=c(14, 6, 18, 7, 22, 9, 38, 4)) #view data frame df player year assists points 1 A 1 4 14 2 A 2 10 6 3 To 3 4 18 4 To 4 4 7 5 B 1 3 22 6 B 2 7 9 7 B 3 7 38 8 B 4 6 4
لنفترض الآن أننا نريد تحويل إطار البيانات بحيث يكون عمود السنة هو عمود المعرف وإنشاء أعمدة جديدة تسمى Assist_A و Assist_B و points_A و points_B لتمثيل التمريرات الحاسمة وقيم النقاط للاعبين A وB خلال كل عام .
نظرًا لأن القيم الموجودة في عمود السنة لن تكون فريدة (سيكون هناك رقمان 1، واثنان 2، وما إلى ذلك)، فستنتج وظيفة Spread () خطأً.
ومع ذلك، يمكننا استخدام الدالة Pivot_wider() بالصيغة التالية لإنتاج إطار البيانات المطلوب:
library (tidyr)
#spread the values in the points and assists columns
pivot_wider(data = df,
id_cols = year,
names_from = player,
values_from = c(' assists ', ' points '))
# A tibble: 4 x 5
year assists_A assists_B points_A points_B
1 1 4 3 14 22
2 2 10 7 6 9
3 3 4 7 18 38
4 4 4 6 7 4
لاحظ أننا لا نتلقى أي أخطاء ونتمكن من إنشاء الأعمدة الجديدة التي تعرض قيم النقطة والمساعدة للاعبين A وB بنجاح في كل سنة من السنوات الأربع.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:
كيفية الإصلاح في R: NAs التي تم تقديمها عن طريق الإكراه
كيفية الإصلاح في R: الفهرس خارج الحدود
كيفية الإصلاح في R: طول الكائن الأطول ليس مضاعفًا لطول الكائن الأقصر
كيفية الإصلاح في R: عدد العناصر المراد استبدالها ليس مضاعفًا لطول الاستبدال