كيفية إزالة الخطوط المكررة في 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