R တွင် grep() နှင့် grepl() ကို နှိုင်းယှဉ်ခြင်း- ကွာခြားချက်ကား အဘယ်နည်း။


R တွင် လူများ မကြာခဏ ရှုပ်ထွေးစေသော လုပ်ဆောင်ချက် နှစ်ခုမှာ grep() နှင့် grepl() ဖြစ်သည်။ လုပ်ဆောင်ချက်နှစ်ခုလုံးသည် string တစ်ခုတွင် အချို့သောပုံစံရှိမရှိ သိနိုင်သော်လည်း ၎င်းတို့သည် မတူညီသောရလဒ်များကို ပြန်ပေးသည်-

  • grepl() သည် စာကြောင်းတစ်ခုတွင် ပုံစံတစ်ခုရှိသောအခါ TRUE ပြန်ပေးသည်။
  • grep() သည် ပုံစံပါရှိသော string indices ၏ vector တစ်ခုကို ပြန်ပေးသည်။

အောက်ဖော်ပြပါ ဥပမာသည် ဤခြားနားချက်ကို ဖော်ပြသည်။

 #create a vector of data
data <- c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center')

grep ('Guard', data)
[1] 1 2

grepl ('Guard', data) 
[1] TRUE TRUE FALSE FALSE FALSE

အောက်ဖော်ပြပါ ဥပမာများသည် ဤလုပ်ဆောင်ချက်များထဲမှ တစ်ခုကို အခြားတစ်ခုသို့ သင်အသုံးပြုလိုသည့်အခါတွင် ပြသသည်။

grepl() ကို ဘယ်အချိန်မှာ သုံးရမလဲ၊

1. အချို့သောစာကြောင်းများပါရှိသော အတန်းများကို စစ်ထုတ်ပါ။

grepl() ၏ အသုံးအများဆုံးအသုံးပြုမှုတစ်ခုမှာ လိုင်းတစ်ခုပါရှိသော ဒေတာဘောင်တစ်ခုအတွင်းရှိ အတန်းများကို စစ်ထုတ်ရန်ဖြစ်သည်-

 library(dplyr)

#create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#filter rows that contain the string 'Guard' in the player column
df %>% filter( grepl ('Guard', player))

   player points rebounds
1 P Guard 12 5
2 S Guard 15 7

ဆက်စပ်- dplyr ကို အသုံးပြု၍ အချို့သော စာကြောင်းများပါရှိသော အတန်းများကို စစ်ထုတ်နည်း

grep() ကို ဘယ်အချိန်မှာ သုံးရမလဲ၊

1. အချို့သော စာကြောင်းများပါရှိသော ကော်လံများကို ရွေးပါ။

သင်သည် grep() ကို အသုံးပြု၍ အချို့သောစာကြောင်းများပါရှိသော ဒေတာဘောင်ရှိ ကော်လံများကို ရွေးချယ်နိုင်သည်-

 library(dplyr)

#create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#select columns that contain the string 'p' in their name
df %>% select( grep ('p', colnames(df)))

     player points
1 P Guard 12
2 S Guard 15
3S Forward 19
4P Forward 22
5 Center 32

2. အချို့သော စာကြောင်းများပါရှိသော လိုင်းအရေအတွက်ကို ရေတွက်ပါ။

အချို့သောစာကြောင်းများပါရှိသော အချက်အလက်ဘောင်တစ်ခုရှိ လိုင်းအရေအတွက်ကိုရေတွက်ရန် grep() ကို အသုံးပြုနိုင်သည်။

 #create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#count how many rows contain the string 'Guard' in the player column
length( grep ('Guard', df$player))

[1] 2

နောက်ထပ် R သင်ခန်းစာများကို ဤနေရာတွင် ရှာဖွေနိုင်ပါသည်။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်