Community

๐Ÿ›  R์€ R์Šค๋Ÿฝ๊ฒŒ, Python์€ Python์Šค๋Ÿฝ๊ฒŒ

์ง€๊ธˆ๊นŒ์ง€ ๋Œ€๋ถ€๋ถ„ ๋ถ„์„ ์ž‘์—…์„ R๋กœ ์ˆ˜ํ–‰ํ•ด ์™”๋Š”๋ฐ, ํ˜„ ์ง์žฅ์—์„œ ๋Œ€์‹œ๋ณด๋“œ ๊ฐœ๋ฐœ ์ž‘์—…์„ Python์˜ Streamlit์œผ๋กœ ํ•˜๊ณ  ์žˆ์–ด์„œ ์š”์ฆ˜ ์ฃผ๋กœ Python์„ ๋‹ค๋ฃจ๊ณ  ์žˆ๋‹ค. Data wrangling, preprocessing ๋“ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์—๋Š” R์˜ tidyverse syntax๊ฐ€ ๋‚ด๊ฒŒ ๊ฐ€์žฅ ์ต์ˆ™ํ•˜๊ธฐ์—, Python์—์„œ R์˜ dplyr(tidyverse ecosystem์„ ์ด๋ฃจ๋Š” ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜)์„ Pandas์™€ ํ˜ธํ™˜๋˜๋„๋ก ๊ตฌํ˜„ํ•œ siuba๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ Data wrangling ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋А๋‚€ ๋ฐ”๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„์— R๊ณผ Python์„ ์ด์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, R์€ R์Šค๋Ÿฝ๊ฒŒ, Python์€ Python์Šค๋Ÿฝ๊ฒŒ ์“ฐ๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์ƒ๊ฐ์ด ๋˜ ์–ธ์ œ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ง€๊ธˆ์€ ๊ทธ๋ ‡๋‹ค. ๊ทธ ์ด์œ ๋ฅผ ์จ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค: 1. dplyr์„ Pandas์— ํ˜ธํ™˜๋˜๋„๋ก ๊ตฌํ˜„ํ•œ siuba๋Š” ํ˜„์žฌ R์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” dplyr ๊ธฐ๋Šฅ์— ๋น„ํ•˜๋ฉด ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ๋“ค์ด ๋งค์šฐ ๋งŽ์•„์„œ, ํ•„์—ฐ์ ์œผ๋กœ Pandas์˜ ํ•จ์ˆ˜๋ฅผ ์„ž์–ด์„œ ์“ธ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. 2. ์•ž์„œ Data wrangling ๊ณผ์ •์— Pandas ํ•จ์ˆ˜๋ฅผ ์„ž์–ด์จ์•ผ๋งŒ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ, tidyverse์˜ ํ•ต์‹ฌ์ธ Pipe ์—ฐ์‚ฐ์ž(R์—์„œ๋Š” |> ๋˜๋Š” %>%, Python์—์„œ๋Š” >>)์™€ ํ˜ธํ™˜์ด ์ฉ ์ž์œ ๋กญ๊ฒŒ ๋˜์ง€ ์•Š๋Š” Pandas ํ•จ์ˆ˜๋“ค๋„ ์žˆ์–ด์„œ ์ค‘๊ฐ„์— ์ฝ”๋“œ๋ฅผ ์ž๋ฅผ ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. 3. Pandas ํ•จ์ˆ˜๋ฅผ ์„ž์–ด ์จ์•ผํ•˜๊ธฐ์— R์—์„œ tidyverse๋ฅผ ์ด์šฉํ• ๋•Œ ๋งŒํผ์˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์€ ๊ธฐ๋Œ€ํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ์•„์šธ๋Ÿฌ, tidyverse์—์„œ ์ถ”๊ตฌํ•˜๋Š” ์ฒ ํ•™๊ณผ Syntax, Pandas์—์„œ ์ถ”๊ตฌํ•˜๋Š” ์ฒ ํ•™๊ณผ Syntax๊ฐ€ ์žˆ์„ํ…๋ฐ, ์ด ๋‘˜์„ ์„ž์–ด ์จ๊ฐ€๋ฉฐ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์€ R๊ณผ Python์„ ๋‘˜ ๋‹ค ์–ด๋А์ •๋„ ๋‹ค๋ฃฐ ์ค„ ์•„๋Š” ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ๋„ ์ฉ ์ข‹๊ฒŒ ๋ณด์ด์ง„ ์•Š์„ ๋“ฏ ํ•˜๋‹ค. 4. ๋ฐ์ดํ„ฐ ๋ถ„์„์— Python๋งŒ์„ ์ด์šฉํ•ด ๋ณธ ์‚ฌ์šฉ์ž๋“ค์ด tidyverse syntax๋ฅผ Python์—๋„ ๊ฐ–๋‹ค ์“ฐ๋Š” ํ–‰ํƒœ๋ฅผ ๋ณด๋ฉด, ์ฝ”๋“œ์— ์ƒ๋‹นํ•œ ๊ฑฐ๋ถ€๊ฐ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. Python์—์„œ tidyverse๊ฐ€ ๊ฝค๋‚˜ ์™„์„ฑ๋„์žˆ๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด, ๊ธฐ์กด์˜ Python ์‚ฌ์šฉ์ž๋“ค์„ ์„ค๋“ํ• ๋งŒํ•œ ์ˆ˜์ค€์˜ ์ฝ”๋“œ๋ฅผ ์งค ๊ฐ€๋Šฅ์„ฑ์ด ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์žˆ๊ฒ ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ƒํ™ฉ์ด๋‹ค. tidyverse๋ฅผ ์ด๋ฃจ๋Š” ํŒจํ‚ค์ง€๋“ค ์ค‘ dplyr๋งŒ ์ชผ์˜ค๊ธˆ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์ƒํ™ฉ์ด๊ณ , dplyr์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋“ค(e.g. mutate())๊ณผ ์œ ์—ฐํ•˜๊ฒŒ ์ž‘๋™ํ•˜์—ฌ vectorized ์—ฐ์‚ฐ์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ˆ˜ํ–‰ ๋˜๋Š” lubridate(๋‚ ์งœ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€), stringr(๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€)๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€๋“ค์€ ์ „ํ˜€ ๊ตฌํ˜„์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ์ด๋‹ค. ์ฐธ๊ณ ๋กœ, ggplot2์˜ ๊ฒฝ์šฐ๋Š” python์—์„œ plotnine์ด๋ผ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ด ๋˜ํ•œ ํ˜„์žฌ R์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ggplot2์™€์˜ ๊ธฐ๋Šฅ๊ณผ ๋น„ํ•˜์—ฌ ๋ดค์„๋•Œ ์–ผ๋งˆ๋‚˜ ๊ตฌํ˜„์ด ๋˜์–ด์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค. matplotlib๋‚˜ Seaborn ๋“ฑ๊ณผ ๊ฐ™์€ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฉ”๋ฆฌํŠธ๊ฐ€ ์žˆ์œผ๋ ค๋ฉด tidyverse syntax๊ฐ€ ์ž˜ ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด์•ผํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ƒํ™ฉ์ด๋‹ˆ. ์ด๋Ÿฌํ•œ ์ด์œ ์—์„œ ๋‚˜๋Š” R์— ์ต์ˆ™ํ•œ ์‚ฌ์šฉ์ž์—ฌ๋„ ๋ฐ์ดํ„ฐ ๋ถ„์„์— Python์„ ์ด์šฉํ•  ์ƒํ™ฉ์ด ์žˆ๋‹ค๋ฉด, ๊ตณ์ด ์ต์ˆ™ํ•œ tidyverse systax๋ฅผ ๋”ฐ๋ฅด๋Š”, ๊ทธ๋Ÿฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ํ•จ์ˆ˜๋“ค์„ ์ฐพ๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ๊ทธ๋ƒฅ Pandas๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฒ ํ•™, syntax๋ฅผ ์ดํ•ดํ•˜๋Š”๊ฒŒ Python์„ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—ญ๋Ÿ‰์„ ํ‚ค์šฐ๋Š” ๋ฐ์— ํ›จ์”ฌ ๋” ์ข‹์•„๋ณด์ธ๋‹ค. Python์— ์ต์ˆ™ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ R์„ ์ด์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ˜๋Œ€์˜ ์ƒํ™ฉ์—๋„, ํ•ด๋‹น ์–ธ์–ด(R)์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ• ๋•Œ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ค„์ง€๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(e.g. tidyverse)์˜ ์ฒ ํ•™๊ณผ syntax๋ฅผ ์ดํ•ดํ•˜๊ณ ์ž ํ•˜๋Š” ๋…ธ๋ ฅ์ด ์žˆ์–ด์•ผ ๋ณด๋‹ค ๋นจ๋ฆฌ R ์—ญ๋Ÿ‰์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ด ๊ด€์ ์—์„œ โ€œPandas๋Š” ๊ตฌ๋ ค, tidyverse๊ฐ€ ์งฑ์ด์ง€.โ€ ๋˜๋Š” โ€œtidyverse๋Š” ๊ตฌ๋ ค, Pandas๊ฐ€ ์งฑ์ด์ง€. ์™€ ๊ฐ™์€ ๊ทน๋‹จ์  ์˜๊ฒฌ์€ ๋งค์šฐ ๋ฌด์˜๋ฏธํ•ด ๋ณด์ธ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค