๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค 100๋ฒˆ์˜ ๋…ธํฌ(๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํŽธ) โ€“ R Part 2 (Q21 to Q40)

๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค
์„ค๋ช…:

"nrow(df_receipt)"๋ผ๋Š” ์ฝ”๋“œ๋Š” R ๋˜๋Š” ์œ ์‚ฌํ•œ ํ†ต๊ณ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” "df_receipt"๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ํ–‰ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์•„๋ž˜๋Š” ์ฝ”๋“œ์˜ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•œ๋‹ค.

"nrow()"๋Š” R์˜ ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ํ–‰ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

"df_receipt"๋Š” ํ–‰ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ด๋ฆ„์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ "df_receipt"์— 100๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด 100์ด๋ผ๋Š” ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ์ถ”๊ฐ€ ๋ถ„์„์ด๋‚˜ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜์—ฌ ์˜ˆ์ƒ๋Œ€๋กœ ํ–‰ ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ฝ”๋“œ "length(unique(df_receipt$customer_id))"๋Š” R ๋˜๋Š” ์œ ์‚ฌํ•œ ํ†ต๊ณ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” "df_receipt"๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ํฌํ•จ๋œ ๊ณ ์œ  ๊ณ ๊ฐ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ฝ”๋“œ์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

"unique()"๋Š” ํŠน์ • ๋ฒกํ„ฐ์˜ ๊ณ ์œ ํ•œ ์š”์†Œ๋งŒ์„ ํฌํ•จํ•˜๋Š” ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” R ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ "unique()" ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜๋Š” ๋ฒกํ„ฐ๋Š” "df_receipt$customer_id"๋กœ "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๊ณ ๊ฐ ID๋ฅผ ํฌํ•จํ•˜๋Š” ์—ด์ด๋‹ค.

"length()"๋„ ๋ฒกํ„ฐ์˜ ์š”์†Œ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” R์˜ ๋‚ด์žฅ ํ•จ์ˆ˜์ด๋‹ค. ์ด ๊ฒฝ์šฐ "length()"์— ์ „๋‹ฌ๋˜๋Š” ๋ฒกํ„ฐ๋Š” "unique()" ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ์ด๋ฉฐ, ๊ณ ์œ ํ•œ ๊ณ ๊ฐ ID๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฒกํ„ฐ์ด๋‹ค.

์š”์•ฝํ•˜๋ฉด, ์ด ์ฝ”๋“œ๋Š” ๊ณ ์œ ํ•œ ๊ณ ๊ฐ ID๊ฐ€ ํฌํ•จ๋œ ๋ฒกํ„ฐ์˜ ๊ธธ์ด๋ฅผ ์ทจํ•˜์—ฌ "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๊ณ ์œ ํ•œ ๊ณ ๊ฐ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— 1000๊ฐœ์˜ ํ–‰์ด ์žˆ๊ณ  ๊ณ ์œ ํ•œ ๊ณ ๊ฐ ID๊ฐ€ 500๊ฐœ๋ฐ–์— ์—†๋Š” ๊ฒฝ์šฐ, ์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด 500์ด๋ผ๋Š” ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๊ณ ์œ  ๊ณ ๊ฐ ์ˆ˜๋ฅผ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜ ๊ณ ๊ฐ ํ‰์ƒ ๊ฐ€์น˜์™€ ๊ฐ™์€ ๊ณ ๊ฐ ์ˆ˜์ค€ ์ง€ํ‘œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.
ย 
ํ•ด์„ค:

"df_receipt %>% group_by.

df_receipt %>% group_by(store_cd) %>% summarise(amount = sum(amount), quantity = sum(quantity), .groups = 'drop')"๋ผ๋Š” ์ฝ”๋“œ๋Š” R ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ํ†ต๊ณ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ "store_cd"๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ ๋งค์žฅ ๊ทธ๋ฃน ๋‚ด "amount" ๋ฐ "quantity" ๋ณ€์ˆ˜์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์•„๋ž˜๋Š” ์ฝ”๋“œ์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž('%>%')๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž('%>%')๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์—ฐ์‡„์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ด์ „ ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ์„ ๋ฐ›์•„ ๋‹ค์Œ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์—์„œ๋Š” "group_by()"์™€ "summarise()" ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

"group_by()"๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” R ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ "store_cd" ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค.

"summarise()"๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” R ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๊ฐ ๋งค์žฅ ๊ทธ๋ฃน ๋‚ด '๊ธˆ์•ก', '์ˆ˜๋Ÿ‰' ๋ณ€์ˆ˜์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋Œ€์ž… ์—ฐ์‚ฐ์ž '='๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

'summarise()' ํ•จ์ˆ˜์˜ '.groups' ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ "drop"์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋Š” "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๊ฐ ๋งค์žฅ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ–‰์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด๋ฉฐ, "amount" ๋ฐ "quantity" ์—ด์—๋Š” ๊ฐ ๋งค์žฅ ๊ทธ๋ฃน ๋‚ด์˜ ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜์˜ ํ•ฉ๊ณ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ์ด๋งค์ถœ์•ก์ด๋‚˜ ํŒ๋งค ์ˆ˜๋Ÿ‰๊ณผ ๊ฐ™์€ ๋งค์žฅ ๋‹จ์œ„์˜ ์ง€ํ‘œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.
ย 
์„ค๋ช…:

df_receipt %>% group_by(customer_id) %>% summarise(max_ymd = max(sales_ymd), .groups = 'drop') %>% slice(1:10)"๋ผ๋Š” ์ฝ”๋“œ๋Š” R ๋˜๋Š” ์œ ์‚ฌํ•œ ํ†ต๊ณ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ "customer_id"๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ ์ตœ์‹  ๊ตฌ๋งค ๋‚ ์งœ๋ฅผ ์ฐพ๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์™„์„ฑ๋œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10์ค„์„ ์Šฌ๋ผ์ด์Šคํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ฝ”๋“œ์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž("%>%")๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž("%>%")๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ์„ ๋ฐ›์•„ ๋‹ค์Œ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ๋Š” "group_by()", "summarise()", "slice()" ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

"group_by()"๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” R ํ•จ์ˆ˜์ด๋‹ค. ์ด ๊ฒฝ์šฐ "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ "customer_id" ๋ณ€์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"summarise()"๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” R ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” "sales_ymd" ๋ณ€์ˆ˜์˜ "max()" ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ ์ตœ์‹  ๊ตฌ๋งค์ผ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

"summarise()" ํ•จ์ˆ˜์˜ ".groups" ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ "drop"์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

"slice()"๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ํ–‰์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” R ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋Š” "df_receipt" ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๊ฐ ๊ณ ๊ฐ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ–‰์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ๋  ๊ฒƒ์ด๋ฉฐ, "max_ymd" ์—ด์—๋Š” ๊ฐ ๊ณ ๊ฐ์˜ ์ตœ์‹  ๊ตฌ๋งค ๋‚ ์งœ๊ฐ€ ํฌํ•จ๋  ๊ฒƒ์ด๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ๊ฐ ๊ณ ๊ฐ์˜ ์ตœ์‹  ๊ตฌ๋งค ๋‚ ์งœ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๊ณ ๊ฐ ์ˆ˜์ค€ ๋ถ„์„ ๋ฐ ์„ธ๋ถ„ํ™” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ค๋ช…:

์ด ์ฝ”๋“œ์—์„œ๋Š” %>%(ํŒŒ์ดํ”„) ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•ด ์ผ๋ จ์˜ ์—ฐ์‡„์ ์ธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋‹ค์Œ์€ ๊ฐ ์—ฐ์‚ฐ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

group_by(customer_id): customer_id ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ดํ›„ ์ฒ˜๋ฆฌ๋ฅผ ๊ณ ๊ฐ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ˆ˜ํ–‰ํ•œ๋‹ค.

summarise(min_ymd = min(sales_ymd), .groups = "drop"): sales_ymd ์—ด์˜ ์ตœ์†Œ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ min_ymd๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์— ์ €์žฅํ•˜์—ฌ ๊ฐ ๊ทธ๋ฃน ๋‚ด ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝ์„ ์ƒ์„ฑํ•œ๋‹ค. .groups = "drop" ์ธ์ˆ˜๋Š” dplyr์—๊ฒŒ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค(์ถ”๊ฐ€ ๋ถ„์„์— ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—).

slice(1:10): ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” customer_id๋กœ ๊ทธ๋ฃนํ™”๋˜์—ˆ๊ณ , summary ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์ฒ˜์Œ 10๋ช…์˜ ๊ณ ๊ฐ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋น ๋ฅธ sales_ymd ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ฐ ๊ณ ๊ฐ์˜ ๊ฐ€์žฅ ๋น ๋ฅธ sales_ymd ๊ฐ’์„ ์„ ํƒํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์ฒซ 10๋ช…์˜ ๊ณ ๊ฐ ์ค‘ ๊ฐ€์žฅ ๋น ๋ฅธ ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ์—์„œ๋Š” %>%(ํŒŒ์ดํ”„) ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•ด ์ผ๋ จ์˜ ์—ฐ์‡„์ ์ธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋‹ค์Œ์€ ๊ฐ ์—ฐ์‚ฐ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋‹จ๊ณ„๋ณ„ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

group_by(customer_id) : group_by(customer_id) : customer_id ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ดํ›„ ์ฒ˜๋ฆฌ๋ฅผ ๊ณ ๊ฐ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ˆ˜ํ–‰ํ•œ๋‹ค.

summarise(max_ymd = max(sales_ymd), min_ymd = min(sales_ymd), .groups = "drop"): sales_ymd ์ปฌ๋Ÿผ์˜ ์ตœ๋Œ€๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ๊ฐ max_ymd์™€ min_ymd๋ผ๋Š” ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์— ์ €์žฅํ•œ๋‹ค. ๊ฐ ๊ทธ๋ฃน ๋‚ด ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝ์„ ์ƒ์„ฑํ•œ๋‹ค. .groups = "drop" ์ธ์ˆ˜๋Š” dplyr์—๊ฒŒ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค(์ถ”๊ฐ€ ๋ถ„์„์— ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—).

filter(max_ymd ! = min_ymd): max_ymd ๊ฐ’์ด min_ymd ๊ฐ’๊ณผ ๊ฐ™์ง€ ์•Š์€ ํ–‰๋งŒ ํฌํ•จํ•˜๋„๋ก ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๋Œ€์ƒ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋‹จ ํ•œ ๋ฒˆ๋งŒ ๊ตฌ๋งคํ•œ ๊ณ ๊ฐ์€ ์ œ์™ธ๋œ๋‹ค.

slice(1:10): ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” customer_id๋กœ ๊ทธ๋ฃนํ™”๋˜์–ด max ํ•จ์ˆ˜์™€ min ํ•จ์ˆ˜๋กœ ์š”์•ฝ๋˜๊ณ  ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„ํ„ฐ๋ง๋˜์–ด ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๋Œ€์ƒ ๊ธฐ๊ฐ„ ๋™์•ˆ ํ•œ ๋ฒˆ ์ด์ƒ ๊ตฌ๋งค๋ฅผ ํ•œ ์ฒ˜์Œ 10๋ช…์˜ ๊ณ ๊ฐ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค๋ฃจ๋Š” ๊ธฐ๊ฐ„ ๋™์•ˆ ํ•œ ๋ฒˆ ์ด์ƒ ๊ตฌ๋งคํ•œ ๊ณ ๊ฐ์„ ์„ ํƒํ•˜๊ณ  ๊ฐ€์žฅ ๋น ๋ฅธ ๊ตฌ๋งค ๋‚ ์งœ์™€ ๊ฐ€์žฅ ๋Šฆ์€ ๊ตฌ๋งค ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ์ฒ˜์Œ 10๋ช…์˜ ๊ณ ๊ฐ์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋น ๋ฅธ ๊ตฌ๋งค ๋‚ ์งœ์™€ ๊ฐ€์žฅ ๋Šฆ์€ ๊ตฌ๋งค ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ์—์„œ๋Š” %>%(ํŒŒ์ดํ”„) ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•ด ์ผ๋ จ์˜ ์—ฐ์‡„์ ์ธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋‹ค์Œ์€ ๊ฐ ์—ฐ์‚ฐ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•œ๋‹ค.

group_by(store_cd): store_cd ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ ๋งค์žฅ๋ณ„๋กœ ํ›„์† ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

summarise(mean_amount = mean(amount), .groups = "drop") : ๊ฐ ๊ทธ๋ฃน ๋‚ด ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝ์„ ๋งŒ๋“ค๊ณ , amount ์—ด์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ mean_amount๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์— ์ €์žฅํ•œ๋‹ค. .groups = "drop" ์ธ์ˆ˜๋Š” dplyr์—๊ฒŒ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค(์ถ”๊ฐ€ ๋ถ„์„์— ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—).

arrange(desc(mean_amount)) : ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ mean_amount ์—ด์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ(๋†’์€ ๊ฒƒ๋ถ€ํ„ฐ ๋‚ฎ์€ ๊ฒƒ๊นŒ์ง€)์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

slice(1:5) : ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ์ฒ˜์Œ 5๊ฐœ ํ–‰์„ ์„ ํƒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” store_cd๋กœ ๊ทธ๋ฃนํ™”๋˜์–ด mean ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์•ฝ๋˜์—ˆ์œผ๋ฏ€๋กœ, ๋ชจ๋“  ๊ฑฐ๋ž˜์—์„œ ํ‰๊ท  ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋†’์€ ๋งค์žฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์—์„œ ํ‰๊ท  ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋†’์€ ๋งค์žฅ์„ ์„ ํƒํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 5๊ฐœ ๋งค์žฅ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ์—์„œ๋Š” %>%(ํŒŒ์ดํ”„) ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•ด ์ผ๋ จ์˜ ์—ฐ์‡„์ ์ธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋‹ค์Œ์€ ๊ฐ ์—ฐ์‚ฐ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•œ๋‹ค.

group_by(store_cd): store_cd ์—ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ดํ›„ ์ฒ˜๋ฆฌ๋ฅผ ๋งค์žฅ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

summarise(median_amount = median(amount), .groups = "drop") : ๊ฐ ๊ทธ๋ฃน ๋‚ด ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝ์„ ์ƒ์„ฑํ•˜๊ณ , amount ์—ด์˜ ์ค‘์•™๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ median_amount๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์— ์ €์žฅํ•œ๋‹ค. .groups = "drop" ์ธ์ˆ˜๋Š” dplyr์—๊ฒŒ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค(์ถ”๊ฐ€ ๋ถ„์„์— ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—).

arrange(desc(median_amount)) : ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ median_amount ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ(๋†’์€ ๊ฒƒ๋ถ€ํ„ฐ ๋‚ฎ์€ ๊ฒƒ๊นŒ์ง€)์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

slice(1:5) : ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ์ฒ˜์Œ 5๊ฐœ ํ–‰์„ ์„ ํƒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” store_cd๋กœ ๊ทธ๋ฃนํ™”๋˜์–ด median ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์•ฝ๋˜์—ˆ์œผ๋ฏ€๋กœ, ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์—์„œ ์ค‘๊ฐ„๊ฐ’์ด ๊ฐ€์žฅ ๋†’์€ ๋งค์žฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์—์„œ ๊ฐ€์žฅ ์ค‘๊ฐ„๊ฐ’์ด ๋†’์€ ๋งค์žฅ์„ ์„ ํƒํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 5๊ฐœ ๋งค์žฅ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ์™€ ์ง€๋‚œ๋ฒˆ ์„ค๋ช…ํ•œ ์ฝ”๋“œ์˜ ์ฐจ์ด์ ์€ ์ด ์ฝ”๋“œ์—์„œ๋Š” ๊ฐ ๋งค์žฅ์˜ ๊ธˆ์•ก ๊ฐ’์˜ ์ค‘์‹ฌ ๊ฒฝํ–ฅ์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ํ‰๊ท  ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ค‘์•™๊ฐ’ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” dplyr ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt๋ผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์•„๋ž˜๋Š” ์ด ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•œ๋‹ค.

ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž๋Š” ํ•œ ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ์ด ๋‹ค์Œ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ์ด ๋˜๋„๋ก ํ•จ์ˆ˜๋ฅผ ์—ฐ์‡„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž์ด๋‹ค.

group_by ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ store_cd์™€ product_cd๋กœ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๊ฐ ๊ทธ๋ฃน์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ ๊ทธ๋ฃน์˜ ํ–‰ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  cnt๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

.groups = "drop_last" ์ธ์ˆ˜๋Š” summarise ํ•จ์ˆ˜์—์„œ ์ƒ์„ฑ๋œ ๋งˆ์ง€๋ง‰ ๊ทธ๋ฃนํ™” ์ˆ˜์ค€, ์ฆ‰ product_cd ๊ทธ๋ฃนํ™”๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‚˜์ค‘์— ์ตœ๋Œ€ ์ˆ˜๋กœ ์‰ฝ๊ฒŒ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

filter ํ•จ์ˆ˜๋Š” ํŠน์ • ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ํ–‰์„ ์„ ํƒํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ cnt ์—ด์ด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ cnt ์—ด์˜ ์ตœ๋Œ€๊ฐ’๊ณผ ๋™์ผํ•œ ํ–‰์„ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.

ungroup ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๋ชจ๋“  ๊ทธ๋ฃนํ™” ์ˆ˜์ค€์„ ์ œ๊ฑฐํ•œ๋‹ค.

slice ํ•จ์ˆ˜๋Š” ์œ„์น˜์— ๋”ฐ๋ผ ํ–‰์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์„ ํƒํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ๋Š” ์ „์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์ ๊ณผ ์ƒํ’ˆ๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ๊ฐ ๊ทธ๋ฃน์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ๊ทธ๋ฃน์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ƒ์œ„ 10๊ฐœ๋ฅผ ์„ ํƒํ•œ๋‹ค.
ย 
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” table ํ•จ์ˆ˜์™€ for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ฐ ๋งค์žฅ์˜ ๊ฐ ์ƒํ’ˆ ์ฝ”๋“œ์˜ ๋ชจ๋“œ(๊ฐ€์žฅ ๋นˆ๋ฒˆํ•œ ๊ฐ’)๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

table ํ•จ์ˆ˜๋Š” df_receipt์˜ store_cd์™€ product_cd์˜ ๊ฐ ์กฐํ•ฉ์— ๋Œ€ํ•œ ์นด์šดํŠธ ๋ถ„ํ•  ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ table_product๋ผ๋Š” ๊ฐ์ฒด๋Š” ํ–‰์ด ๊ฐ ๋งค์žฅ, ์—ด์ด ๊ฐ ์ƒํ’ˆ ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ํ–‰๋ ฌ์ด ๋œ๋‹ค.

names ํ•จ์ˆ˜๋Š” table_product ํ–‰๋ ฌ์˜ ์ฒซ ๋ฒˆ์งธ ์—ด์—์„œ ๋งค์žฅ ์ฝ”๋“œ๋ฅผ ์ถ”์ถœํ•˜์—ฌ store๋ผ๋Š” ๋ฌธ์ž ๋ฒกํ„ฐ๋กœ ์ €์žฅํ•œ๋‹ค.

๊ฐ ์ƒ์ ์˜ ๊ฐ ์ƒํ’ˆ ์ฝ”๋“œ์˜ ๋ชจ๋“œ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด mode_product๋ผ๋Š” ๋นˆ ๋ฒกํ„ฐ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

for ๋ฃจํ”„๋Š” store์˜ ๊ฐ ๋งค์žฅ์„ ๋ฐ˜๋ณตํ•˜์—ฌ ํ•ด๋‹น ๋งค์žฅ์˜ ๊ฐ ์ƒํ’ˆ ์ฝ”๋“œ์˜ ๋ชจ๋“œ๋ฅผ ๊ตฌํ•˜๊ณ , which.max ํ•จ์ˆ˜๋กœ table_product ํ–‰๋ ฌ์˜ ๊ฐ ํ–‰์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•˜๊ณ , names ํ•จ์ˆ˜๋กœ ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„ ์ƒํ’ˆ ์ฝ”๋“œ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ์–ป์–ด์ง„ ์ƒํ’ˆ ์ฝ”๋“œ๋Š” mode_product ๋ฒกํ„ฐ์— ์ €์žฅ๋œ๋‹ค.

store_cd์™€ product_cd ๋‘ ๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋˜๋ฉฐ, store_cd ์ปฌ๋Ÿผ์—๋Š” store ๋ฒกํ„ฐ์˜ ๊ฐ’์ด, product_cd ์ปฌ๋Ÿผ์—๋Š” mode_product ๋ฒกํ„ฐ์˜ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.

๋˜ํ•œ %>% ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ slice ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ๋Š” ์ „์ฒด์ ์œผ๋กœ df_receipt์—์„œ ๊ฐ ๋งค์žฅ์˜ ๊ฐ ์ƒํ’ˆ ์ฝ”๋“œ์˜ ๋ชจ๋“œ๋ฅผ ๊ตฌํ•˜๊ณ , ์ด ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค์–ด ์ƒ์œ„ 10๊ฐœ๋ฅผ ์„ ํƒํ•œ๋‹ค.
ย 
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” dplyr ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๊ฐ ๋งค์žฅ์˜ ๊ธˆ์•ก ๋ณ€์ˆ˜์˜ ์ƒ˜ํ”Œ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ 5๊ฐœ ๋งค์žฅ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•œ๋‹ค.

var_sample ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ, var(x) * (length(x) - 1) / length(x)๋ผ๋Š” ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’ x์˜ ๋ฒกํ„ฐ์— ๋Œ€ํ•œ ํ‘œ๋ณธ ๋ถ„์‚ฐ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹์€ ๋ชจ์ง‘๋‹จ์˜ ๋ถ„์‚ฐ์„ ํŽธ๊ฒฌ ์—†์ด ์ถ”์ •ํ•˜๊ธฐ ์œ„ํ•ด length(x) ๋Œ€์‹  length(x)๋ฅผ length(x) - 1๋กœ ๋‚˜๋ˆ„์–ด ๋ถ„์‚ฐ์„ ์กฐ์ •ํ•œ๋‹ค.

std_sample ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ, sqrt(var_sample(x))๋ผ๋Š” ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’ ๋ฒกํ„ฐ x์˜ ํ‘œ๋ณธ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

head ํ•จ์ˆ˜๋Š” ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 5๊ฐœ ํ–‰์„ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์—ฐ์‚ฐ์ž %>%๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

group_by ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ store_cd๋กœ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๊ฐ ๊ทธ๋ฃน์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ std_sample ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ทธ๋ฃน์˜ ๊ธˆ์•ก ๋ณ€์ˆ˜์˜ ์ƒ˜ํ”Œ ํ‘œ์ค€ ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  std_amount๋ผ๋Š” ์ƒˆ ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

.groups = "drop" ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ทธ๋ฃนํ™” ๋œ tibble์ด ์•„๋‹Œ ํ‰ํ‰ํ•œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

arrange ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ std_amount๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋งค์žฅ์ด ๋จผ์ € ํ‘œ์‹œ๋˜๋„๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

n = 5 ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ์„ ์ƒ์œ„ 5 ๊ฐœ ํ–‰์œผ๋กœ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ๋Š” ์ „์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค์žฅ๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ๊ทธ๋ฃน๋ณ„๋กœ ๊ธˆ์•ก ๋ณ€์ˆ˜์˜ ์ƒ˜ํ”Œ ํ‘œ์ค€ ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ํ‘œ์ค€ ํŽธ์ฐจ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ •๋ ฌํ•˜๊ณ , ์ƒ์œ„ 5๊ฐœ ๊ฒฐ๊ณผ๋ฅผ ์„ ํƒํ•œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” dplyr ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ ๊ธˆ์•ก ๋ณ€์ˆ˜์˜ ์‚ฌ๋ถ„์œ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž %>%๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ถ„์œ„์ˆ˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋Ÿ‰ ๋ณ€์ˆ˜์˜ 25, 50(์ค‘์•™๊ฐ’), 75, 100๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ 1ํ–‰ 4์—ด์ด๋ฉฐ, ์—ด ์ด๋ฆ„์€ amount_25per, amount_50per, amount_75per, amount_100per์ด๋ฉฐ, ํ•ด๋‹น ์‚ฌ๋ถ„์œ„์ˆ˜ ๊ฐ’๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ amount ๋ณ€์ˆ˜์˜ ์‚ฌ๋ถ„์œ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์‚ฌ๋ถ„์œ„ ๊ฐ’์„ ํฌํ•จํ•œ ์š”์•ฝ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” dplyr ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ store_cd๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ ๊ทธ๋ฃน์˜ ํ‰๊ท  ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ , ํ‰๊ท  ๊ธˆ์•ก์ด 330 ์ด์ƒ์ธ ๊ทธ๋ฃน๋งŒ ํฌํ•จํ•˜๋„๋ก ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž %>%๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

group_by ํ•จ์ˆ˜๋Š” store_cd๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๊ฐ ๊ทธ๋ฃน์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ mean ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ทธ๋ฃน์˜ ํ‰๊ท  ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ  mean_amount๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

.groups = "drop" ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ทธ๋ฃนํ™” ๋œ tibble์ด ์•„๋‹Œ ํ‰ํ‰ํ•œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

filter ํ•จ์ˆ˜๋Š” mean_amount๊ฐ€ 330 ์ด์ƒ์ธ ํ–‰๋งŒ ํฌํ•จํ•˜๋„๋ก ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋ถ€๋ถ„ ์ง‘ํ•ฉํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ๋Š” ์ „์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ store_cd๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ ๊ทธ๋ฃน์˜ ํ‰๊ท  ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ  ํ‰๊ท  ๊ธˆ์•ก์ด 330 ์ด์ƒ์ธ ๊ทธ๋ฃน๋งŒ ์„ ํƒํ•œ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—๋Š” ๊ฐ ๋Œ€์ƒ ๋งค์žฅ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํ–‰์ด ํฌํ•จ๋˜๋ฉฐ, ๋งค์žฅ ์ฝ”๋“œ์™€ ํ‰๊ท  ๊ธˆ์•ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” dplyr ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ customer_id๊ฐ€ "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ณ ๊ฐ์„ ์ œ์™ธํ•œ ํ›„ ๊ฐ ๊ณ ๊ฐ์˜ ํ‰๊ท  ์†Œ๋น„์•ก์„ ๊ณ„์‚ฐํ•œ๋‹ค.

์•„๋ž˜๋Š” ์ด ์ฝ”๋“œ๊ฐ€ ํ•˜๋Š” ์ผ์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•œ๋‹ค.

์—ฐ์‚ฐ์ž %>%๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

filter ํ•จ์ˆ˜๋Š” customer_id๊ฐ€ ๋ฌธ์ž "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์„ ์ œ์™ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

group_by ํ•จ์ˆ˜๋Š” customer_id๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๊ฐ ๊ทธ๋ฃน์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ sum ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  sum_amount๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

.groups = "drop" ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ทธ๋ฃนํ™” ๋œ ibble์ด ์•„๋‹Œ ํ‰ํ‰ํ•œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ summarise ํ•จ์ˆ˜๋Š” ์ „์ฒด ๊ณ ๊ฐ์˜ sum_amount์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๊ฒฐ๊ณผ mean_amount ๊ฐ’์€ $mean_amount๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” customer_id๊ฐ€ "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์„ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ , customer_id๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋ชจ๋“  ๊ณ ๊ฐ์— ๋Œ€ํ•œ ํ‰๊ท  sum_amount๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๊ฒฐ๊ณผ์˜ ํ‰๊ท ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์žˆ๋‹ค. ๊ฒฐ๊ณผ ์ถœ๋ ฅ์€ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ํ‰๊ท  ๊ธˆ์•ก์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์ผ ์ˆ˜์น˜์ด๋‹ค.
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” dplyr ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ customer_id๊ฐ€ 'Z'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ณ ๊ฐ์„ ์ œ์™ธํ•œ ํ›„, ์ „์ฒด ๊ณ ๊ฐ์˜ ํ‰๊ท  ์‚ฌ์šฉ์•ก ์ด์ƒ์„ ์‚ฌ์šฉํ•œ ๊ณ ๊ฐ์„ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ์‚ฌ์šฉ๊ธˆ์•ก์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 10๋ช…์˜ ๊ณ ๊ฐ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ์ฝ”๋“œ๊ฐ€ ํ•˜๋Š” ์ผ์„ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฐ์‚ฐ์ž %>%๋Š” df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

filter ํ•จ์ˆ˜๋Š” customer_id๊ฐ€ "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์„ ์ œ์™ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

group_by ํ•จ์ˆ˜๋Š” customer_id๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๊ฐ ๊ทธ๋ฃน์˜ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ sum ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  sum_amount๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

.groups = "drop" ์ธ์ˆ˜๋Š” ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ทธ๋ฃนํ™” ๋œ ibble์ด ์•„๋‹Œ ํ‰ํ‰ํ•œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

df_sum ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ ์œ„์˜ ์ž‘์—…์˜ ์ถœ๋ ฅ์„ ์ €์žฅํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

summarise ํ•จ์ˆ˜๋Š” ๋‹ค์‹œ df_sum์˜ ๋ชจ๋“  ๊ณ ๊ฐ์˜ sum_amount์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๊ฒฐ๊ณผ mean_amount ๊ฐ’์€ $mean_amount๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ถœํ•œ๋‹ค.

์—ฐ์‚ฐ์ž %>%๋Š” df_sum์„ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

ํ•„ํ„ฐ ํ•จ์ˆ˜๋Š” sum_amount๊ฐ€ 7๋‹จ๊ณ„์—์„œ ๊ณ„์‚ฐ๋œ mean_amount๋ณด๋‹ค ํฐ ํ–‰๋งŒ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์Šฌ๋ผ์ด์Šค ํ•จ์ˆ˜๋Š” ์›๋ž˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ƒ์œ„ 10 ๊ฐœ ํ–‰๋งŒ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ๋Š” ์ „์ฒด์ ์œผ๋กœ customer_id๊ฐ€ "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์„ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ , customer_id๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ , ์ „์ฒด ๊ณ ๊ฐ์˜ ํ‰๊ท  sum_amount๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์ด ์ „์ฒด ๊ณ ๊ฐ์˜ ํ‰๊ท  ๊ธˆ์•ก ์ด์ƒ์˜ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์ƒ์„ฑ, ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 10๋ช…์˜ ๊ณ ๊ฐ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” df_receipt์™€ df_store์˜ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์‚ฌ์ด์—์„œ ๊ณตํ†ต ์—ด "store_cd"๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ถ€ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋Š” slice() ํ•จ์ˆ˜๋กœ ์ „์†ก๋˜์–ด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

inner_join(df_receipt, df_store[c("store_cd", "store_name")], by = "store_cd"): df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„๊ณผ "store_cd"์™€ "store_name" ์—ด๋งŒ ํฌํ•จํ•˜๋Š” df_store์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. store์˜ ํ•˜์œ„ ์ง‘ํ•ฉ๊ณผ df_store ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ๊ฐ„์˜ ๋‚ด๋ถ€ ๋ฐ”์ธ๋”ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐํ•ฉ์€ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” "store_cd" ์—ด์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ "store_cd" ์ปฌ๋Ÿผ์ด ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด๋‹ค.

%>%: ์ด์ „ ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ๋ฐ›์•„ ๋‹ค์Œ ๋ช…๋ น์˜ ์ž…๋ ฅ์œผ๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž์ด๋‹ค.

slice(1:10): ์ด ํ•จ์ˆ˜๋Š” ์ด์ „ ๋ช…๋ น์—์„œ ์–ป์€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ์ „์ฒด ๋ชฉ์ ์€ df_receipt์™€ df_store์˜ ํ•˜์œ„ ์ง‘ํ•ฉ ๊ฐ„์˜ ๋‚ด๋ถ€ ๊ฒฐํ•ฉ ์ž‘์—… ๊ฒฐ๊ณผ์˜ ์ฒ˜์Œ 10 ์ค„์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ "store_cd"์—ด์ด ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ํฌํ•จํ•˜๋ฉฐ, df_store์˜ "store_cd"์™€ "store_name"์—ด๊ณผ df_receipt์˜ ๋ชจ๋“  ์—ด์„ ํฌํ•จํ•˜๊ฒŒ ๋œ๋‹ค.

ย 

์„ค๋ช…

์ด ์ฝ”๋“œ๋Š” df_product์™€ df_category์˜ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์‚ฌ์ด์—์„œ ๊ณตํ†ต ์—ด 'category_small_cd'๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ถ€ ๊ฒฐํ•ฉ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋Š” slice() ํ•จ์ˆ˜๋กœ ํŒŒ์ดํ”„๋˜์–ด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค.

์ด์ œ ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•ด ๋ณด์ž.

inner_join(df_product, df_category[c("category_small_cd", "category_small_name")], by = "category_small_cd"): ์ด๊ฒƒ์€ df_product ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„๊ณผ " category_small_cd" ๋ฐ "category_small_name" ์ปฌ๋Ÿผ๋งŒ ํฌํ•จํ•˜๋Š” df_category์˜ ํ•˜์œ„ ์ง‘ํ•ฉ ๊ฐ„ ๋‚ด๋ถ€ ๋ฐ”์ธ๋”ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐํ•ฉ์€ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ์กด์žฌํ•˜๋Š” "category_small_cd" ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ "category_small_cd" ์ปฌ๋Ÿผ์ด ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ๋œ๋‹ค.

%>%: ์ด์ „ ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ๋ฐ›์•„ ๋‹ค์Œ ๋ช…๋ น์˜ ์ž…๋ ฅ์œผ๋กœ ํŒŒ์ดํ”„ํ•˜๋Š” ํŒŒ์ดํ”„ ์—ฐ์‚ฐ์ž์ด๋‹ค.

slice(1:10) : ์ด ํ•จ์ˆ˜๋Š” ์ด์ „ ๋ช…๋ น์—์„œ ์–ป์€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ์ „์ฒด ๋ชฉ์ ์€ df_product์™€ df_category์˜ ํ•˜์œ„ ์ง‘ํ•ฉ ๊ฐ„์˜ ๋‚ด๋ถ€ ๊ฒฐํ•ฉ ์ž‘์—… ๊ฒฐ๊ณผ์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ "category_small_cd" ์—ด์ด ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ํฌํ•จํ•˜๊ณ , df_category์˜ "category_small_cd" ๋ฐ "category_small_name" ์—ด๊ณผ df_product์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

ย 

์„ค๋ช…:

์ด ์ฝ”๋“œ์—์„œ๋Š” ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝํ‘œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ๊ฒฐ๊ณผ๋ฅผ slice() ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

df_sum <- df_receipt %>% group_by(customer_id) %>% summise(sum_amount = sum(amount), .groups = "drop"): ์ด ์ฝ”๋“œ๋Š” ๋จผ์ € df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ "customer_id" ์—ด๋กœ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค. id" ์—ด๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , sum() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "amount" ์—ด์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ df_sum์—๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. .groups ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ถœ๋ ฅ์—์„œ ๊ทธ๋ฃนํ™” ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด "drop"์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

df_target <- df_customer %>% filter(gender_cd == "1" & !grepl("^Z", customer_id)): ์ด ์ฝ”๋“œ๋Š” df_customer ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ "gender_cd" ์ปฌ๋Ÿผ์ด "1"๊ณผ ๊ฐ™๊ณ , "customer_id" ์ปฌ๋Ÿผ์ด "Z"๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ํ–‰๋งŒ ํฌํ•จํ•˜๋„๋ก ํ•„ํ„ฐ๋งํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ df_target์—๋Š” ID๊ฐ€ "Z"๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋‚จ์„ฑ ๊ณ ๊ฐ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

left_join(df_target["customer_id"], df_sum, by = "customer_id"): df_target["customer_id"]์™€ df_sum ์‚ฌ์ด์—์„œ "customer_id" ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐ๊ณผ๋Š” df_target์˜ ๋ชจ๋“  ํ–‰๊ณผ df_sum์˜ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ํ•ด๋‹น ์ด์•ก์„ ํฌํ•จํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ž…๋‹ˆ๋‹ค.

replace_na(list(sum_amount = 0)): "sum_amount" ์—ด์˜ ๋ˆ„๋ฝ๋œ ๊ฐ’์„ ๊ธฐ๋ณธ๊ฐ’์ธ 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค.

slice(1:10): ์ด ํ•จ์ˆ˜๋Š” ์ด์ „ ๋ช…๋ น์—์„œ ์–ป์€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ์ „์ฒด ๋ชฉ์ ์€ ID๊ฐ€ "Z"๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋‚จ์„ฑ ๊ณ ๊ฐ์ด ์ง€์ถœํ•œ ์ด ๊ธˆ์•ก์˜ ์š”์•ฝํ‘œ๋ฅผ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™„์„ฑ๋œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ "customer_id"์™€ "sum_amount"๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์—ด์ด ์žˆ๊ณ , "sum_amount"๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์ด๋ฉฐ, "sum_amount"์—ด์˜ ๋ˆ„๋ฝ๋œ ๊ฐ’์€ ๋ชจ๋‘ 0์œผ๋กœ ๋Œ€์ฒด๋˜๋ฉฐ, ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ ์ฒ˜์Œ 10์ค„๋กœ ์ œํ•œ๋œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” ๋‘ ๊ฐœ์˜ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ์š”์•ฝ ํ…Œ์ด๋ธ”์„ ์–ป๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  "customer_id" ์ปฌ๋Ÿผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์™„์ „ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—๋Š” ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ๊ณผ ๊ตฌ๋งค ๊ธˆ์•ก ํ•ฉ๊ณ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ๋ถ„ํ•ดํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

df_data <- df_receipt %>% filter(!grepl("^Z", customer_id)) %>% group_by(customer_id): ์ด ์ฝ”๋“œ๋Š” ๋จผ์ € df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ "customer_id" ์—ด ์ด "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์„ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ "customer_id" ์—ด๋กœ ๊ทธ๋ฃนํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ df_data ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ df_receipt์—์„œ "Z" ๊ณ ๊ฐ ID๋ฅผ ์ œ๊ฑฐํ•œ ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋ฉฐ "customer_id"๋กœ ๊ทธ๋ฃนํ™”๋˜์–ด ์žˆ๋‹ค.

df_cnt <- df_data %>% summarise(come_days = n_distinct(sales_ymd), .groups = "drop") %>% arrange(desc(come_days), customer_id) %>% slice(1:20): ์ด ์ฝ”๋“œ์—์„œ๋Š” ๋จผ์ € n_distinct() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ "sales_ymd" ๊ฐ’์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ df_data ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ df_cnt๋Š” ๊ฐ ๊ณ ๊ฐ์˜ ์ด ๊ณ ์œ  ํŒ๋งค์ผ ์ˆ˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ "come_days"์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ, "customer_id"์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ slice() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 20๊ฐœ ํ–‰์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

df_sum <- df_data %>% summarise(sum_amount = sum(amount), .groups = "drop") %>% arrange(desc(sum_amount)) %>% slice(1:20): ์ด ์ฝ”๋“œ๋Š” sum() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ '๊ธˆ์•ก' ์—ด์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ df_data ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ df_sum์—๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ "sum_amount" ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ , slice() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 20๊ฐœ ํ–‰์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

full_join(df_cnt, df_sum, by = "customer_id"): ์ด ์ฝ”๋“œ๋Š” df_cnt์™€ df_sum ์‚ฌ์ด์—์„œ "customer_id" ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ „์ฒด ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ "customer_id"์™€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ๋  ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—๋Š” ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ๊ณผ ์ด ์†Œ๋น„ ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ์ด ํฌํ•จ๋œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ์ „์ฒด ๋ชฉ์ ์€ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋‘ ๊ฐœ์˜ ์š”์•ฝ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ ธ์™€ ์ด ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์™„์ „ํ•œ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—๋Š” ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๊ฐ€์žฅ ๋‹ค๋ฅธ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ๊ณผ ์ด ๊ฒฐ์ œ ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ์ด ํฌํ•จ๋œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” ์ง€๋‚œ๋ฒˆ ์„ค๋ช…ํ•œ ์ฝ”๋“œ์™€ ๋น„์Šทํ•˜์ง€๋งŒ, arrange() ํ•จ์ˆ˜ ๋Œ€์‹  slice_max() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒ๋งค ์ผ์ˆ˜์™€ ๊ตฌ๋งค ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„์—์„œ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ฝ”๋“œ์˜ ๋‚ด์šฉ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

df_data <- df_receipt %>% filter(!grepl("^Z", customer_id)) %>% group_by(customer_id): ์ด ์ฝ”๋“œ๋Š” ์•ž์˜ ์ฝ”๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ df_receipt ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ "customer_id" ์—ด์ด " customer_id" ์—ด์ด "Z"๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์„ ์ œ์™ธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ "customer_id" ์ปฌ๋Ÿผ์œผ๋กœ ๊ทธ๋ฃนํ™”๋ฉ๋‹ˆ๋‹ค.

df_cnt <- df_data %>% summarise(come_days = n_distinct(sales_ymd)) %>% slice_max(come_days, n = 20, with_ties = FALSE): ์ด ์ฝ”๋“œ๋Š” n_distinct() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ "sales_ymd" ๊ฐ’์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ df_data ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ df_cnt๋Š” ๊ฐ ๊ณ ๊ฐ์˜ ์ด ๊ณ ์œ  ํŒ๋งค์ผ ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋ฉฐ, slice_max() ํ•จ์ˆ˜๋Š” "come_days" ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 20๊ฐœ ํ–‰์„ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

df_sum <- df_data %>% summarise(sum_amount = sum(amount)) %>% slice_max(sum_amount, n = 20, with_ties = FALSE): ์ด ์ฝ”๋“œ๋Š” sum() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ๋ณ„ "amount" ์—ด์˜ sum() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ "amount" ์—ด์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ df_data ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ df_sum์—๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, slice_max() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "sum_amount" ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„ 20๊ฐœ์˜ ํ–‰์„ ์„ ํƒํ•˜๋ฉฐ, with_ties = FALSE๋Š” ์ƒ์œ„ 20๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’๋งŒ ์„ ํƒํ•˜๋„๋ก ์ง€์ •ํ•œ๋‹ค. ๊ฒƒ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

full_join(df_cnt, df_sum, by = "customer_id"): ์ด ์ฝ”๋“œ๋Š” df_cnt์™€ df_sum ์‚ฌ์ด์—์„œ "customer_id" ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ „์ฒด ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—์„œ "customer_id"๋กœ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ๋  ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—๋Š” ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ๊ณผ ์ด ์†Œ๋น„ ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ์ด ํฌํ•จ๋œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ์ „์ฒด ๋ชฉ์ ์€ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋‘ ๊ฐœ์˜ ์š”์•ฝ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ ธ์™€ ์ด ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์™„์ „ํ•œ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์—๋Š” ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๊ฐ€์žฅ ๋‹ค๋ฅธ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ๊ณผ ์ด ๊ฒฐ์ œ ๊ธˆ์•ก์ด ๊ฐ€์žฅ ๋†’์€ ์ƒ์œ„ 20๋ช…์˜ ๊ณ ๊ฐ์ด ํฌํ•จ๋˜๋ฉฐ, arrange() ํ•จ์ˆ˜ ๋Œ€์‹  slice_max() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
ย 
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” df_store์™€ df_product ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ์ถ”๊ฐ€๋œ ๊ณตํ†ต 'ํ‚ค' ์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ๊ฐ„์˜ ์™„์ „ํ•œ ๊ฒฐํ•ฉ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ nrow() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ–‰ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ฝ”๋“œ์˜ ๋ถ„์„์ด๋‹ค.

df_store_tmp <- df_store: ์ด ์ฝ”๋“œ์—์„œ๋Š” df_store_tmp๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜์—ฌ df_store ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ณต์‚ฌ๋ณธ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋Š” ์›๋ž˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•จ์ด๋‹ค.

df_product_tmp <- df_product: ์ด ์ฝ”๋“œ๋Š” df_product ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ณต์‚ฌ๋ณธ์ธ df_product_tmp๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.

df_store_tmp["key"] <- 0: ์ด ์ฝ”๋“œ๋Š” df_store_tmp ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— "key"๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  ๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ด ์ปฌ๋Ÿผ์€ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์œ„ํ•œ ๊ณตํ†ต ์ปฌ๋Ÿผ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

df_product_tmp["key"] <- 0: ์ด ์ฝ”๋“œ๋Š” df_product_tmp ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— "key"๋ผ๋Š” ์ƒˆ๋กœ์šด ์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋“  ๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ปฌ๋Ÿผ์€ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์œ„ํ•œ ๊ณตํ†ต ์ปฌ๋Ÿผ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

full_join(df_store_tmp, df_product_tmp, by = "key"). ์ด ์ฝ”๋“œ๋Š” ๊ณตํ†ต "key" ์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ df_store_tmp์™€ df_product_tmp ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ๊ฐ„์˜ ์ „์ฒด ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ชจ๋“  ํ–‰์—์„œ ์ด ์—ด์˜ ๊ฐ’์ด ๋™์ผํ•˜๋ฏ€๋กœ ์™„์ „ ๊ฒฐํ•ฉ์€ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ฐ์นด๋ฅดํŠธ ๊ณฑ์ด ๋˜๊ณ , df_store_tmp์˜ ๋ชจ๋“  ํ–‰์€ df_product_tmp์˜ ๋ชจ๋“  ํ–‰๊ณผ ์ง์„ ์ด๋ฃฌ๋‹ค.

nrow(full_join(df_store_tmp, df_product_tmp, by = "key")): ์ด ์ฝ”๋“œ๋Š” nrow() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ ๊ฒฐํ•ฉ ์ž‘์—…์—์„œ ์–ป์€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ํ–‰ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ๊ฒฐ๊ณผ๋Š” df_store์™€ df_product ์‚ฌ์ด์˜ ์ด ํ–‰ ์กฐํ•ฉ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, ์ด ์ฝ”๋“œ๋Š” df_store์™€ df_product ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ณ , ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ๊ณตํ†ต "ํ‚ค"์—ด์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ๊ฐ’์„ 0์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ๊ณตํ†ต "ํ‚ค"์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„๊ฐ„์— ์™„์ „ ๊ฒฐํ•ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ ํ–‰ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ df_store์™€ df_product ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ด ํ–‰ ์กฐํ•ฉ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
ย 
ย 

Comment