كيفية إزالة الخطوط المكررة في r حتى لا يتبقى منها شيء


يمكنك استخدام الطرق التالية في R لإزالة الصفوف المكررة من إطار البيانات بحيث لا يبقى أي منها في إطار البيانات الناتج:

الطريقة الأولى: استخدم Base R

 new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]

الطريقة الثانية: استخدم dplyr

 library (dplyr)

new_df <- df %>%
          group_by(across(everything())) %>%
          filter(n() == 1 )

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(20, 20, 28, 14, 13, 18, 27, 13))

#view data frame
df

  team points
1 to 20
2 to 20
3 to 28
4 to 14
5 B 13
6 B 18
7 B 27
8 B 13

مثال 1: استخدم Base R

يوضح التعليمة البرمجية التالية كيفية استخدام وظائف R الأساسية لإزالة الصفوف المكررة من إطار البيانات بحيث لا يبقى منها شيء:

 #create new data frame that removes duplicates so none are left
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]

#view new data frame
new_df

  team points
3 to 28
4 to 14
6 B 18
7 B 27

لاحظ أنه تمت إزالة كل صف من الصفوف المكررة من إطار البيانات ولم يتم الاحتفاظ بأي من التكرارات.

مثال 2: استخدام dplyr

يوضح التعليمة البرمجية التالية كيفية استخدام الوظائف الموجودة في حزمة dplyr في R لإزالة الصفوف المكررة من إطار البيانات بحيث لا يبقى أي منها:

 library (dplyr)

#create new data frame that removes duplicates so none are left
new_df <- df %>%
          group_by(across(everything())) %>%
          filter(n() == 1 )

#view new data frame
new_df

# A tibble: 4 x 2
# Groups: team, points [4]
  team points
    
1 to 28
2 to 14
3 B 18
4 B 27

لاحظ أنه تمت إزالة كل صف من الصفوف المكررة من إطار البيانات ولم يتم الاحتفاظ بأي من التكرارات.

لاحظ أيضًا أن هذا ينتج نفس نتيجة الطريقة السابقة.

ملحوظة : بالنسبة لإطارات البيانات الكبيرة جدًا، ستكون طريقة dplyr أسرع من طريقة R الأساسية.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ وظائف شائعة أخرى في R:

كيفية حذف الصفوف في R بناءً على الحالة
كيفية حذف الصفوف مع NA في عمود معين في R

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *