Data.table: ์ˆ™์ฒญ

์— ๋งŒ๋“  2019๋…„ 05์›” 24์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Rdatatable/data.table

์—ฌ๊ธฐ์— ๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ํ›„์† ์กฐ์น˜:

https://github.com/Rdatatable/data.table/pull/3582#discussion_r287075480

๋˜ํ•œ ๊ธฐ์—ฌ ์— ์ถ”๊ฐ€๋จ

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์œ ํšจํ•œ <- ์‚ฌ์šฉ์„ ์žก๋Š” ๋ฐ ๋” ๋‚˜์€ ์ •๊ทœ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š” ํ•œ ์ˆ˜๋™์œผ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•  ์ž‘์—…์ด ๊ฝค ์žˆ์Šต๋‹ˆ๋‹ค.

grep -r "<-" R | wc -l
628

<- ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” = ๋ฅผ ์ „๋ฉด ๊ต์ฒดํ•˜๊ณ  ํŒจ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๐Ÿค”

Low beginner-task internals

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@jangorecki ์ฒ˜๋Ÿผ, ๋‚˜๋„ ์ด๊ฒƒ์— ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด์ง€ ์•Š์•˜์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ Michael์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๋†’์€ ๊ฐ€์น˜์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž๋ฅผ ๋ณผ ๋•Œ PR์„ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
= ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด x < -3 x<-3 ์˜ ์œ„ํ—˜์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ• ๋‹น์€ ๊ฐ’์ด ์žˆ๋Š” R์˜ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—( -3 ๋Š” ์ž๋™์œผ๋กœ TRUE๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜๋จ) ์ด ์˜ค๋ฅ˜๋Š” ๊ฐ์ง€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. = ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์ž‘์—…์ž ์ฃผ์œ„์— ๊ณต๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ’ˆ์งˆ ๊ด€๋ฆฌ ๊ฒ€์‚ฌ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. <- ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๋Š” ๋ง์„ ๋“ฃ๊ณ  <- ๊ฐ€ ์ตœ๊ณ ๋ผ๊ณ  ํ™•์‹ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋ช‡ ๋ช…์ด๋‚˜ ๋ ๊นŒ.

๋ชจ๋“  3 ๋Œ“๊ธ€

IMO ์ด๊ฒƒ์€ ๊ทธ๋‹ค์ง€ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. = ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜์ง€๋งŒ <- ์ฃผ์œ„์— ํ‘œ์‹œ๋˜๋ฉด ์“ฐ๊ณ  ์žˆ๋Š” ํŒŒ์ผ์˜ ์Šคํƒ€์ผ์— ๋งž์ถฐ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. AFAIR ํ•จ์ˆ˜ ์ •์˜๋Š” <- ์ƒ๋‹นํžˆ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
data.table ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ๋“ค์ด R์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด (๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ „ํŒŒ๋˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋Œ€์กฐ์ ์œผ๋กœ) ์‹ค์ œ๋กœ ์•„๋ฌด๋Ÿฐ ํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ด๋Š” R ์–ธ์–ด๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋งŒ ํ•ด๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. . ์ด๊ฑธ ๋‹ซ์•„๋„ ๋ ๊นŒ์š”?

๋‚˜๋Š” ๋ณ„๋กœ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ–ˆ์ง€๋งŒ ๋งํฌ๋œ ์ฝ”๋ฉ˜ํŠธ์™€ ์ด ์ปค๋ฐ‹: https://github.com/Rdatatable/data.table/pull/3580/commits/50243432f2c20310107989606d56ab52fab28ad4

์ผ๊ด€์„ฑ์˜ ์ •์‹ ์œผ๋กœ ์ด๊ฒƒ์„ ์ œ์ถœํ•˜๋„๋ก ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”๋„๊ฐ€ ๋งค์šฐ ๋‚ฎ์œผ๋ฏ€๋กœ Low ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@jangorecki ์ฒ˜๋Ÿผ, ๋‚˜๋„ ์ด๊ฒƒ์— ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด์ง€ ์•Š์•˜์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ Michael์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๋†’์€ ๊ฐ€์น˜์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ƒˆ๋กœ์šด ๊ธฐ์—ฌ์ž๋ฅผ ๋ณผ ๋•Œ PR์„ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
= ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด x < -3 x<-3 ์˜ ์œ„ํ—˜์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ• ๋‹น์€ ๊ฐ’์ด ์žˆ๋Š” R์˜ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—( -3 ๋Š” ์ž๋™์œผ๋กœ TRUE๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜๋จ) ์ด ์˜ค๋ฅ˜๋Š” ๊ฐ์ง€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. = ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์ž‘์—…์ž ์ฃผ์œ„์— ๊ณต๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ’ˆ์งˆ ๊ด€๋ฆฌ ๊ฒ€์‚ฌ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. <- ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๋Š” ๋ง์„ ๋“ฃ๊ณ  <- ๊ฐ€ ์ตœ๊ณ ๋ผ๊ณ  ํ™•์‹ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋ช‡ ๋ช…์ด๋‚˜ ๋ ๊นŒ.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰