كيفية استخدام gsub() في r لاستبدال قوالب متعددة


يمكن استخدام الدالة gsub() في R لاستبدال كافة تكرارات نمط معين في سلسلة في R.

لاستبدال نماذج متعددة في وقت واحد، يمكنك استخدام عبارة gsub() المتداخلة:

 df$col1 <- gsub(' old1 ', ' new1 ',
           gsub(' old2 ', ' new2 ',
           gsub(' old3 ', ' new3 ', df$col1)))

ومع ذلك، هناك طريقة أسرع بكثير وهي الدالة stri_replace_all_regex() من حزمة stringi ، والتي تستخدم بناء الجملة التالي:

 library (stringi)

df$col1 <- stri_replace_all_regex(df$col1,
                                  pattern=c(' old1 ', ' old2 ', ' old3 '),
                                  replacement=c(' new1 ', ' new2 ', ' new3 '),
                                  vectorize= FALSE )

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

الطريقة الأولى: استبدال قوالب متعددة بـ gsub() المتداخلة

لنفترض أن لدينا إطار البيانات التالي في R:

 #create data frame
df <- data. frame (name=c('A', 'B', 'B', 'C', 'D', 'D'),
                 dots=c(24, 26, 28, 14, 19, 12))

#view data frame
df

  name points
1 to 24
2 B 26
3 B 28
4 C 14
5 D 19
6 D 12

يمكننا استخدام عبارة gsub() المتداخلة لاستبدال أنماط متعددة في عمود الاسم :

 #replace multiple patterns in name column
df$name <- gsub(' A ', ' Andy ',
           gsub(' B ', ' Bob ',
           gsub(' C ', ' Chad ', df$name)))

#view updated data frame
df

  name points
1Andy 24
2 Bob 26
3 Bob 28
4 Chad 14
5 D 19
6 D 12

لاحظ أنه تم استبدال كل من A وB وC في عمود الاسم بقيم جديدة.

الطريقة الثانية: استبدال نماذج متعددة بـ stringi

هناك طريقة أسرع بكثير لاستبدال أنماط متعددة وهي استخدام الدالة stri_replace_all_regex() من حزمة stringi .

يوضح الكود التالي كيفية استخدام هذه الوظيفة:

 library (stringi)

#replace multiple patterns in name column
df$name <- stri_replace_all_regex(df$name,
                                  pattern=c(' A ', ' B ', ' C '),
                                  replacement=c(' Andy ', ' Bob ', ' Chad '),
                                  vectorize= FALSE )

#view updated data frame
df

  name points
1Andy 24
2 Bob 26
3 Bob 28
4 Chad 14
5 D 19
6 D 12

لاحظ أن إطار البيانات الناتج يطابق إطار المثال السابق.

إذا كان إطار البيانات الخاص بك كبيرًا إلى حد ما، فستلاحظ أن هذه الوظيفة أسرع بكثير من وظيفة gsub() .

مصادر إضافية

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

كيفية استخدام وظيفة الاستبدال () في R
كيفية استبدال القيم بشكل مشروط في إطار بيانات R

Add a Comment

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