Dplyr တွင် case_when() ကို ဘယ်လိုသုံးမလဲ။


R ရှိ dplyr ပက်ကေ့ခ်ျမှ case_when() လုပ်ဆောင်ချက်ကို ရှိပြီးသား variable များမှ ကိန်းရှင်အသစ်များ ဖန်တီးရန် အသုံးပြုနိုင်သည်။

ဤလုပ်ဆောင်ချက်သည် အောက်ပါအခြေခံ syntax ကိုအသုံးပြုသည်-

 library (dplyr)

df %>%
  mutate (new_var = case_when (var1 < 15 ~ ' low ',
                             var2 < 25 ~ ' med ',
                             TRUE ~ ' high '))

TRUE သည် “ else” statement နှင့် ညီမျှကြောင်း သတိပြုပါ။

အောက်ပါဥပမာများသည် အောက်ပါဒေတာဘောင်ဖြင့် ဤလုပ်ဆောင်ချက်ကို လက်တွေ့အသုံးချနည်းကို ပြသသည်-

 #create data frame
df <- data. frame (player = c('AJ', 'Bob', 'Chad', 'Dan', 'Eric', 'Frank'),
                 position = c('G', 'F', 'F', 'G', 'C', NA),
                 points = c(12, 15, 19, 22, 32, NA),
                 assists = c(5, 7, 7, 12, 11, NA))

#view data frame
df

  player position points assists
1 AJ G 12 5
2 Bob F 15 7
3 Chad F 19 7
4 Dan G 22 12
5 Eric C 32 11
6 Frank NA NA NA

ဥပမာ 1- ရှိပြီးသား ကိန်းရှင်တစ်ခုမှ ကိန်းရှင်အသစ်တစ်ခုကို ဖန်တီးပါ။

အောက်ဖော်ပြပါ ကုဒ်သည် အမှတ်များ ကော်လံမှ တန်ဖိုးများကို အရည်အသွေး ဟုခေါ်သော ကိန်းရှင်အသစ်ကို ဖန်တီးနည်းကို ပြသသည်-

 df %>%
mutate (quality = case_when (points > 20 ~ ' high ',
                             points > 15 ~ ' med ',
                             TRUE ~ ' low ' ))

  player position points assists quality
1 AJ G 12 5 low
2 Bob F 15 7 low
3 Chad F 19 7 med
4 Dan G 22 12 high
5 Eric C 32 11 high
6 Frank NA NA NA low

ဤသည်မှာ case_when() လုပ်ဆောင်ချက်သည် ကော်လံအသစ်အတွက် တန်ဖိုးများကို မည်သို့ဖန်တီးခဲ့သည်၊

  • အမှတ်များကော်လံရှိတန်ဖိုးသည် 20 ထက်များပါက၊ အရည်အသွေးကော်လံရှိတန်ဖိုးသည် “ မြင့်မားသည်။”
  • မဟုတ်ပါက၊ အမှတ်များကော်လံရှိတန်ဖိုးသည် 15 ထက်ကြီးပါက၊ အရည်အသွေးကော်လံရှိတန်ဖိုးသည် “ med” ဖြစ်သည်။
  • မဟုတ်ပါက၊ အမှတ်များကော်လံရှိတန်ဖိုးသည် 15 ထက်နည်းသည် သို့မဟုတ် ညီမျှပါက (သို့မဟုတ် NA ကဲ့သို့သော လွဲမှားနေသောတန်ဖိုး) ဆိုလျှင် အရည်အသွေးကော်လံရှိတန်ဖိုးသည် “ နိမ့်သည်” ဖြစ်သည်။

ဥပမာ 2- ကိန်းရှင်များစွာမှ ကိန်းရှင်အသစ်တစ်ခုကို ဖန်တီးပါ။

အောက်ပါကုဒ်သည် အမှတ်များ နှင့် အထောက်အကူပြု ကော်လံများမှ တန်ဖိုးများကို အရည်အသွေး ဟုခေါ်သော ကိန်းရှင်အသစ်ကို ဖန်တီးနည်းကို ပြသသည်-

 df %>%
mutate (quality = case_when (points > 15 & assists > 10 ~ ' great ',
                             points > 15 & assists > 5 ~ ' good ',
                             TRUE ~ ' average ' ))

  player position points assists quality
1 AJ G 12 5 average
2 Bob F 15 7 average
3 Chad F 19 7 good
4 Dan G 22 12 great
5 Eric C 32 11 great
6 Frank NA NA NA average

NA တန်ဖိုးများသို့ စာကြောင်းများကို ပြတ်သားစွာ သတ်မှတ်ရန် is.na() လုပ်ဆောင်ချက်ကိုလည်း အသုံးပြုနိုင်ကြောင်း သတိပြုပါ။

 df %>%
mutate (quality = case_when (is. na (points) ~ ' missing ',
                             points > 15 & assists > 10 ~ ' great ',
                             points > 15 & assists > 5 ~ ' good ',
                             TRUE ~ ' average ' ))

  player position points assists quality
1 AJ G 12 5 average
2 Bob F 15 7 average
3 Chad F 19 7 good
4 Dan G 22 12 great
5 Eric C 32 11 great
6 Frank NA NA NA missing

ထပ်လောင်းအရင်းအမြစ်များ

R မှာ လိုင်းတွေကို ဘယ်လိုစီစဉ်မလဲ။
R တွင် အုပ်စုတစ်ခုစီတွင် စောင့်ကြည့်မှုများကို ရေတွက်နည်း
R တွင်အချို့သောစာကြောင်းပါရှိသောအတန်းများကိုစစ်ထုတ်နည်း

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

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