วิธีการคำนวณผลรวมต่อเนื่องโดยใช้ dplyr
คุณสามารถใช้วิธีต่อไปนี้เพื่อคำนวณผลรวมของคอลัมน์ใน R โดยใช้แพ็คเกจ dplyr :
วิธีที่ 1: คำนวณผลรวมสะสมของคอลัมน์
df %>% mutate(cum_sum = cumsum(var1))
วิธีที่ 2: คำนวณผลรวมสะสมต่อกลุ่ม
df %>% group_by(var1) %>% mutate(cum_sum = cumsum(var2))
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: คำนวณผลรวมสะสมโดยใช้ dplyr
สมมติว่าเรามี data frame ต่อไปนี้ใน R:
#create dataset df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8), sales=c(7, 12, 10, 9, 9, 11, 18, 23)) #view dataset df day sales 1 1 7 2 2 12 3 3 10 4 4 9 5 5 9 6 6 11 7 7 18 8 8 23
เราสามารถใช้โค้ดต่อไปนี้เพื่อสร้างคอลัมน์ใหม่ที่มีผลรวมสะสมของค่าในคอลัมน์ “ยอดขาย”:
library (dplyr)
#calculate cumulative sum of sales
df %>% mutate(cum_sales = cumsum(sales))
day sales cum_sales
1 1 7 7
2 2 12 19
3 3 10 29
4 4 9 38
5 5 9 47
6 6 11 58
7 7 18 76
8 8 23 99
ตัวอย่างที่ 2: คำนวณผลรวมสะสมต่อกลุ่มโดยใช้ dplyr
สมมติว่าเรามี data frame ต่อไปนี้ใน R:
#create dataset
df <- data. frame (store=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
day=c(1, 2, 3, 4, 1, 2, 3, 4),
sales=c(7, 12, 10, 9, 9, 11, 18, 23))
#view dataset
df
store day sales
1 To 1 7
2 to 2 12
3 to 3 10
4 to 4 9
5 B 1 9
6 B 2 11
7 B 3 18
8 B 4 23
เราสามารถใช้โค้ดต่อไปนี้เพื่อสร้างคอลัมน์ใหม่ที่มีผลรวมสะสมของค่าในคอลัมน์ “sales” ซึ่งจัดกลุ่มตามคอลัมน์ “store”:
library (dplyr)
#calculate cumulative sum of sales by store
df %>% group_by(store) %>% mutate(cum_sales = cumsum(sales))
# A tibble: 8 x 4
# Groups: store[2]
store day sales cum_sales
1 To 1 7 7
2 A 2 12 19
3 To 3 10 29
4 A 4 9 38
5 B 1 9 9
6 B 2 11 20
7 B 3 18 38
8 B 4 23 61
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการคำนวณทั่วไปอื่นๆ ใน R: