R တွင် အုပ်စုအလိုက် သီးသန့်တန်ဖိုးများကို ရေတွက်နည်း (ဥပမာများဖြင့်)


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

နည်းလမ်း 1- Base R ကိုသုံးပါ။

 results <- aggregate(data=df, values_var~group_var, function (x) length ( unique (x)))

နည်းလမ်း 2- dplyr ကိုသုံးပါ။

 library (dplyr)

results <- df %>%
  group_by(group_var) %>%
  summarize(count = n_distinct (values_var))

နည်းလမ်း 3- data.table ကိုအသုံးပြုခြင်း။

 library (data.table)

df <- data.table(df)
results <- df[, .(count = length ( unique (values_var))), by = group_var]

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

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(10, 10, 14, 14, 18, 19, 20, 20, 20))

#view data frame
df

  team points
1 to 10
2 to 10
3 to 14
4 to 14
5 B 18
6 B 19
7 C 20
8 C 20
9 C 20

Method 1: Base R ကိုအသုံးပြုပြီး အုပ်စုအလိုက် ထူးခြားသောတန်ဖိုးများကို ရေတွက်ပါ။

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

 #count unique points values by team
results <- aggregate(data=df, points~team, function (x) length ( unique (x)))

#view results
results

  team points
1 TO 2
2 B 2
3 C 1

ရလဒ်မှ ကျွန်ုပ်တို့ မြင်နိုင်သည်-

  • Team A အတွက် ထူးခြားသော အမှတ်တန်ဖိုး 2 ခု ရှိသည်။
  • Team B အတွက် ထူးခြားသော အမှတ်တန်ဖိုး 2 ခု ရှိသည်။
  • Team C အတွက် ထူးခြားသော အမှတ်တန်ဖိုး 1 ခု ရှိပါသည်။

နည်းလမ်း 2- dplyr ကို အသုံးပြု၍ အုပ်စုအလိုက် ထူးခြားသောတန်ဖိုးများကို ရေတွက်ပါ။

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

 library (dplyr)

#count unique points values by team
results <- df %>%
  group_by(team) %>%
  summarize(count = n_distinct (points))

#view results
results

# A tibble: 3 x 2
  team count
1 TO 2
2 B 2
3 C 1

ဤရလဒ်များသည် အခြေခံ R နည်းလမ်းနှင့် ကိုက်ညီကြောင်း သတိပြုပါ။

နည်းလမ်း 3- data.table ကို အသုံးပြု၍ အုပ်စုအလိုက် ထူးခြားသောတန်ဖိုးများကို ရေတွက်ပါ။

အောက်ပါကုဒ်သည် data.table ကို အသုံးပြု၍ အဖွဲ့တစ်ခုစီအတွက် ထူးခြားသော အမှတ်တန်ဖိုးများ အရေအတွက်ကို ရေတွက်ပုံပြသည်-

 library (data.table)

#convert data frame to data table
df <- data.table(df)

#count unique points values by team 
results <- df[, .(count = length ( unique (points))), by = team]

#view results
results

   team count
1 TO 2
2:B2
3: C 1

ဤရလဒ်များသည် ယခင်နည်းလမ်းနှစ်ခုနှင့် ကိုက်ညီကြောင်း သတိပြုပါ။

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

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

dplyr ကိုသုံးပြီး တန်ဖိုးတွေကို ဘယ်လိုပြန်ကုဒ်မလဲ။
NA ကို dplyr တွင် Zero ဖြင့် အစားထိုးနည်း
dplyr ကို အသုံးပြု၍ အုပ်စုအလိုက် ကိန်းရှင်များကို စီရန်
dplyr ကိုသုံးပြီး အုပ်စုအလိုက် ပထမအတန်းကို ဘယ်လိုရွေးမလဲ။

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

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