วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานตามกลุ่มใน r (พร้อมตัวอย่าง)
คุณสามารถใช้วิธีใดๆ ต่อไปนี้เพื่อคำนวณค่าเบี่ยงเบนมาตรฐานตามกลุ่มใน R:
วิธีที่ 1: ใช้ฐาน R
aggregate(df$col_to_aggregate, list(df$col_to_group_by), FUN=sd)
วิธีที่ 2: ใช้ dplyr
library (dplyr)
df %>%
group_by(col_to_group_by) %>%
summarise_at(vars(col_to_aggregate), list(name=sd))
วิธีที่ 3: ใช้ data.table
library (data.table)
setDT(df)
dt[ ,list(sd=sd(col_to_aggregate)), by=col_to_group_by]
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R:
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 6 ),
points=c(8, 10, 12, 12, 14, 15, 10, 11, 12,
18, 22, 24, 3, 5, 5, 6, 7, 9))
#view data frame
df
team points
1 to 8
2 to 10
3 to 12
4 to 12
5 to 14
6 to 15
7 B 10
8 B 11
9 B 12
10 B 18
11 B 22
12 B 24
13 C 3
14 C 5
15 C 5
16 C 6
17 C 7
18 C 9
วิธีที่ 1: คำนวณค่าเบี่ยงเบนมาตรฐานตามกลุ่มโดยใช้ฐาน R
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน Aggregate() ของฐานข้อมูล R เพื่อคำนวณค่าเบี่ยงเบนมาตรฐานของคะแนนที่ทีมทำได้:
#calculate standard deviation of points by team
aggregate(df$points, list(df$team), FUN=sd)
Group.1 x
1 A 2.562551
2 B 6.013873
3 C 2.041241
วิธีที่ 2: คำนวณ ค่าเบี่ยงเบนมาตรฐาน ตามกลุ่มโดยใช้ dplyr
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน group_by () และ summarise_at() จากแพ็คเกจ dplyr เพื่อคำนวณค่าเบี่ยงเบนมาตรฐานของคะแนนที่ทีมทำได้:
library (dplyr)
#calculate standard deviation of points scored by team
df %>%
group_by(team) %>%
summarise_at(vars(points), list(name=sd))
# A tibble: 3 x 2
team name
1 to 2.56
2 B 6.01
3C 2.04
วิธีที่ 3: คำนวณค่าเบี่ยงเบนมาตรฐานตามกลุ่มโดยใช้ data.table
รหัสต่อไปนี้แสดงวิธีคำนวณค่าเบี่ยงเบนมาตรฐานของคะแนนที่ทีมทำได้โดยใช้ฟังก์ชันในแพ็คเกจ data.table :
library (data.table)
#convert data frame to data table
setDT(df)
#calculate standard deviation of points scored by team
df[,list(sd=sd(points)), by=team]
team sd
1: A 2.562551
2: B 6.013873
3:C2.041241
โปรดทราบว่าทั้งสามวิธีให้ผลลัพธ์เดียวกัน
หมายเหตุ : หากคุณกำลังทำงานกับ data frame ที่มีขนาดใหญ่มาก ขอแนะนำให้ใช้วิธี dplyr หรือ data.table เนื่องจากแพ็คเกจเหล่านี้ทำงานเร็วกว่า base R มาก
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีคำนวณค่าเฉลี่ยต่อกลุ่มใน R
วิธีคำนวณผลรวมตามกลุ่มใน R
วิธีการคำนวณควอไทล์ตามกลุ่มใน R