วิธีสร้าง pivottables อย่างรวดเร็วใน r


ใน Excel ตารางสรุปสาระสำคัญ เป็นวิธีง่ายๆ ในการจัดกลุ่มและสรุปข้อมูล

ตัวอย่างเช่น หากเรามีชุดข้อมูลต่อไปนี้ใน Excel เราสามารถใช้ตารางสรุปข้อมูลเพื่อสรุปยอดขายรวมตามภูมิภาคได้อย่างรวดเร็ว:

สิ่งนี้บอกเรา:

  • ภูมิภาค A มียอดขายรวม 51 รายการ
  • ภูมิภาค B มียอดขายรวม 85 รายการ
  • ภูมิภาค C มียอดขายรวม 140 รายการ

หรืออาจสรุปโดยใช้ตัวชี้วัดอื่น เช่น ยอดขายเฉลี่ยตามภูมิภาค:

ปรากฎว่าเราสามารถสร้างตารางเดือยที่คล้ายกันใน R ได้อย่างรวดเร็วโดยใช้ฟังก์ชัน group_by() และ summary() จากแพ็คเกจ dplyr

บทช่วยสอนนี้มีตัวอย่างวิธีการดำเนินการหลายประการ

ตัวอย่าง: สร้าง PivotTable ใน R

ขั้นแรก เรามาสร้างชุดข้อมูลเดียวกันใน R ที่เราใช้ในตัวอย่างก่อนหน้าจาก Excel:

 #create data frame
df <- data. frame (region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                 device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'),
                 sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32))

#view data frame
df

   region device sales
1AX 12
2AX18
3 AY 21
4 BX22
5 BY 34
6 BY 29
7 CX 38
8CX36
9 CY 34
10 CY 32

ต่อไป มาโหลดแพ็คเกจ dplyr และใช้ฟังก์ชัน group_by() และ summary() เพื่อจัดกลุ่มตามภูมิภาคและค้นหาผลรวมของยอดขายตามภูมิภาค:

 library (dplyr)

#find sum of sales by region
df %>%
  group_by (region) %>% 
  summarize (sum_sales = sum (sales))

# A tibble: 3 x 2
  region sum_sales
        
1 to 51
2 B 85
3 C 140

เราจะเห็นว่าตัวเลขเหล่านี้ตรงกับตัวเลขที่แสดงในตัวอย่างเบื้องต้นของ Excel

นอกจากนี้เรายังสามารถคำนวณยอดขายเฉลี่ยตามภูมิภาคได้:

 #find average sales by region
df %>%
  group_by (region) %>% 
  summarize (mean_sales = mean (sales))

# A tibble: 3 x 2
  region mean_sales
        
1 to 17  
2 B 28.3
3 C 35

ขอย้ำอีกครั้งว่าตัวเลขเหล่านี้ตรงกับตัวเลขที่แสดงในตัวอย่าง Excel ก่อนหน้า

โปรดทราบว่าเราสามารถจัดกลุ่มตามตัวแปรหลายตัวได้ ตัวอย่างเช่น เราสามารถหาผลรวมของยอดขายที่จัดกลุ่มตามภูมิภาค และ ประเภทอุปกรณ์:

 #find sum of sales by region and device type
df %>%
  group_by (region, device) %>% 
  summarize (sum_sales = sum (sales))

# A tibble: 6 x 3
# Groups: region [3]
  region device sum_sales
          
1AX30
2 AY 21
3 BX22
4 BY 63
5 CX 74
6 CY 66

แหล่งข้อมูลเพิ่มเติม

วิธีทำ VLOOKUP (คล้ายกับ Excel) ใน R
คู่มือฉบับสมบูรณ์: วิธีจัดกลุ่มและสรุปข้อมูลใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *