A- ifelse() နှင့် if_else() အကြား ကွာခြားချက်


dplyr if_else() လုပ်ဆောင်ချက်သည် R အခြေခံ ifelse() လုပ်ဆောင်ချက်ထက် အားသာချက် ၃ ချက်ရှိသည်။

1. if_else() လုပ်ဆောင်ချက်သည် if else ထုတ်ပြန်ချက်တွင် အခြားရွေးချယ်စရာနှစ်ခုတွင် တူညီသောဒေတာအမျိုးအစားရှိသည်ကို စစ်ဆေးသည်။

2. if_else() လုပ်ဆောင်ချက်သည် နေ့စွဲအရာဝတ္တုများကို ဂဏန်းအဖြစ်သို့ မပြောင်းလဲပါ။

3. if_else() လုပ်ဆောင်ချက်သည် NA တန်ဖိုးများကို ကိုင်တွယ်ပုံကို သတ်မှတ်ရန် “ ပျောက်နေသည်” အငြင်းအခုံကို ပေးဆောင်သည်။

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

ဥပမာ 1- if_else() သည် အခြားရွေးချယ်စရာနှစ်ခုတွင် အမျိုးအစားတူညီကြောင်း စစ်ဆေးသည်။

R တွင် ဘတ်စကက်ဘောကစားသမားများအကြောင်း အချက်အလက်များစွာပါရှိသော အောက်ပါဒေတာဘောင်ရှိသည်ဆိုပါစို့။

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

#view data frame
df

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

R base ifelse() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ “ Atlanta” ၏တန်ဖိုး “ A” နှင့် 0 ရှိသော အဖွဲ့တန်ဖိုးဖြင့် အတန်းများသို့ “ Atlanta” ကို သတ်မှတ်ပေးသည့် ကော်လံအသစ်ကို ဖန်တီးပါက၊ ကျွန်ုပ်တို့သည် အမှားအယွင်းများကို လက်ခံရရှိမည်မဟုတ်ပါ။ “Atlanta” သည် အက္ခရာဖြစ်ပြီး 0 သည် နံပါတ်တစ်ခုဖြစ်သော်လည်း၊

 #create new column based on values in team column
df$city <- ifelse(df$team == ' A ', ' Atlanta ', 0)

#view updated data frame
df

  team points city
1 to 22 Atlanta
2 to 20 Atlanta
3 to 28 Atlanta
4 A 14 Atlanta
5 B 13 0
6 B 18 0
7 B 27 0
8 B 33 0

သို့သော်၊ ကျွန်ုပ်တို့သည် ဤတူညီသောလုပ်ဆောင်စရာကိုလုပ်ဆောင်ရန် dplyr ၏ if_else() လုပ်ဆောင်ချက်ကို အသုံးပြုပါက if else ကြေညာချက်တွင် မတူညီသောဒေတာအမျိုးအစားနှစ်ခုကို ကျွန်ုပ်တို့အသုံးပြုခဲ့ကြောင်း ကျွန်ုပ်တို့အားပြောပြသော အမှားတစ်ခုလက်ခံရရှိလိမ့်မည်-

 library (dplyr)

#attempt to create new column based on values in team column
df$city <- if_else(df$team == ' A ', ' Atlanta ', 0)

Error: `false` must be a character vector, not a double vector.

ဥပမာ 2- if_else() သည် ရက်စွဲအရာဝတ္ထုများကို ဂဏန်းတန်ဖိုးများအဖြစ်သို့ ပြောင်းလဲခြင်းမရှိပါ။

စတိုးဆိုင်တစ်ခုတွင် မတူညီသောရက်စွဲများဖြင့် ရောင်းချမှုကိုပြသသည့် R တွင် အောက်ပါဒေတာဘောင်ရှိသည်ဆိုပါစို့။

 #create data frame
df <- data. frame (date=as. Date (c('2022-01-05', '2022-01-17', '2022-01-22',
                        '2022-01-23', '2022-01-29', '2022-02-13')),
                 sales=c(22, 35, 24, 20, 16, 19))

#view data frame
df

        dirty date
1 2022-01-05 22
2 2022-01-17 35
3 2022-01-22 24
4 2022-01-23 20
5 2022-01-29 16
6 2022-02-13 19

ရက်စွဲကော်လံ၏ တန်ဖိုးများကို မွမ်းမံရန် R အခြေစိုက် ifelse() လုပ်ဆောင်ချက်ကို အသုံးပြုပါက၊ တန်ဖိုးများကို ဂဏန်းအဖြစ် အလိုအလျောက် ပြောင်းလဲသွားပါမည်။

 #if date is before 2022-01-20 then add 5 days
df$date <- ifelse(df$date < ' 2022-01-20 ', df$date+ 5 , df$date)

   dirty date
1 19002 22
2 19014 35
3 19014 24
4 19015 20
5 19021 16
6 19036 19

သို့သော်လည်း၊ ကျွန်ုပ်တို့သည် dplyr ၏ if_else() လုပ်ဆောင်ချက်ကို အသုံးပြုပါက၊ ရက်စွဲအရာဝတ္ထုများသည် ရက်စွဲများအဖြစ် ကျန်ရှိနေလိမ့်မည်-

 library (dplyr)

#if date is before 2022-01-20 then add 5 days
df$date <- ifelse(df$date < ' 2022-01-20 ', df$date+ 5 , df$date)

#view updated data frame
df

        dirty date
1 2022-01-10 22
2 2022-01-22 35
3 2022-01-22 24
4 2022-01-23 20
5 2022-01-29 16
6 2022-02-13 19

ဥပမာ 3- if_else() သည် NA တန်ဖိုးများကို ကိုင်တွယ်ပုံကို သတ်မှတ်ရန် “ ပျောက်နေသည်” အငြင်းအခုံတစ်ခုကို ပေးသည်

R တွင် အောက်ပါ data frame ရှိသည်ဆိုပါစို့။

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

#view data frame
df

  team points
1 to 22
2 to 20
3 to 28
4 to 14
5 B 13
6 B 18
7 <NA> 27
8 B 33

ကော်လံအသစ်တစ်ခုဖန်တီးရန် R base ifelse() လုပ်ဆောင်ချက်ကို အသုံးပြုပါက၊ NA တန်ဖိုးများကို ကိုင်တွယ်နည်းကို သတ်မှတ်ရန် ပုံသေရွေးချယ်ခွင့်မရှိပါ။

 #create new column based on values in team column
df$city <- ifelse(df$team == ' A ', ' Atlanta ', ' Boston ')

#view updated data frame
df

  team points city
1 to 22 Atlanta
2 to 20 Atlanta
3 to 28 Atlanta
4 A 14 Atlanta
5 B 13 Boston
6 B 18 Boston
7 <NA> 27 <NA>
8 B 33 Boston

သို့သော်၊ ကျွန်ုပ်တို့သည် dplyr ၏ if_else() လုပ်ဆောင်ချက်ကို အသုံးပြုပါက NA တန်ဖိုးများကို ကိုင်တွယ်နည်းကို သတ်မှတ်ရန် ပျောက်ဆုံးနေသော အကြောင်းပြချက်ကို အသုံးပြုနိုင်သည်။

 library (dplyr)

#create new column based on values in team column
df$city <- ifelse(df$team == ' A ', ' Atlanta ', ' Boston ', missing=' other ')

#view updated data frame
df

  team points city
1 to 22 Atlanta
2 to 20 Atlanta
3 to 28 Atlanta
4 A 14 Atlanta
5 B 13 Boston
6 B 18 Boston
7 <NA> 27 other
8 B 33 Boston

အဖွဲ့ ကော်လံရှိ NA တန်ဖိုးရှိသော အတန်းသည် မြို့သစ် ကော်လံ ရှိ “ အခြား” တန်ဖိုးကို လက်ခံရရှိကြောင်း သတိပြုပါ။

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

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားဘုံအလုပ်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-

R တွင် အခြေအနေများစွာဖြင့် If statement ကိုအသုံးပြုနည်း
R တွင် If Else ကြေငြာချက် nested ကိုဘယ်လိုရေးရမလဲ
R တွင် သင်၏ ပထမဆုံး tryCatch() လုပ်ဆောင်ချက်ကို မည်သို့ရေးမည်နည်း။

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

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