Data.table: `by = .I`๋ฅผ ์‚ฌ์šฉํ•˜๋Š” data.table์˜ ํ–‰ ์—ฐ์‚ฐ

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

data.table ์—์„œ ํ–‰ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ์—

์ด ์„ธ ์ค„์˜ ์ฝ”๋“œ๋Š” ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ by = .I ๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

dt[, sdd := sum(.SD[, 2:4, with=FALSE]), by = 1:NROW(dt) ]
dt[, rowpos := .I][ , sdd := sd(.SD[, -1, with=FALSE]), by = rowpos ]
dt[ , sdd := sd(.SD[, -1, with=FALSE]), by = .I ]

์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ :
dt <- data.table(V0 =LETTERS[c(1,1,2,2,3)], V1=1:5, V2=3:7, V3=5:1)

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

๋˜๋Š” by = .I ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด์•ผํ•˜์ง€๋งŒ i-expression ์„ ๋ฌผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜์—ฌ ์œ ์‚ฌ ๋ฌธ์ œ .N ์— by (- ๋‹ค์‹œ ํ•œ ์‹œ๋„ ์ˆœ์ง„ ์ˆ˜ ๋–จ์–ด์ง€๊ฒŒ dt[, ..., by = 1:.N] ์ด ํŠน์ • ํ‘œํ˜„์ด ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ •๋ง ์•„๋‹ˆ๋‹ค "์˜ฌ๋ฐ”๋ฅธ"์˜ค๋ฅ˜ -).

์ง๊ด€์ ์œผ๋กœ ๋“ค๋ฆฌ๋Š” by = .I ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "rowwise"๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”?

1063

์•ˆ๋…•ํ•˜์„ธ์š” @leoluyi ,

์˜ ๋™์ž‘ by = .I ๋™์ผํ•ฉ๋‹ˆ๋‹ค by = NULL . ์ด SO ํ† ๋ก  https://stackoverflow.com/questions/37667335/row-operations-in-data-table-using-by-i๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

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