DT[TRUE]
๊ฐ ์์ ๋ณต์ฌ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ๋ชฐ๋์ต๋๋ค. ์์ ์ฌ๋ณธ์ ๋ด๋ถ์ฉ์ผ๋ก๋ง ์ฌ์ฉ๋์์ต๋๋ค. #3214 ๋ฐ ๊ด๋ จ #2254์์ ์ด๋ฅผ ๊ฐ์กฐํด ์ฃผ์ @renkun-ken์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
v1.11.8์์ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋ด ๋๋ค:
DT = data.table(id = 1:5, key="id")
DT1 = DT[TRUE]
key(DT1)
[1] "id"
DT1[3, id:=6L]
key(DT1)
# NULL # correct
DT$id
# [1] 1 2 6 4 5 # should be 1:5
key(DT)
# [1] "id" # invalid key
๊ทธ๊ฒ์ DT[TRUE]
, iiuc ์ดํ์๋ง ๋ฐ์ํฉ๋๋ค. ์ฌ๋๋ค์ด ๋๋ฌด ๋ง์ด ๋ฐ๊ฒฌํ๊ฑฐ๋ ์์กดํ์ง ์์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ๊ธฐ์กด ์ด์ ๋ณ๊ฒฝํ์ง ์๊ณ ์์ ๋ณต์ฌ๋ณธ์ ์ ์ด์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ์ค๋ช
๋ @renkun-ken๊ณผ ๊ฐ์ ์ฌ์ฉ๋ฒ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
์ ํ ์คํธ 1542.08์ด PR #2313์ ์ถ๊ฐ๋์์ผ๋ฉฐ ์ด ๋ฌธ์ ๊ฐ ์์ ๋ ๋ ๋๋นํ ์ ์์ต๋๋ค.
์, setkey, ๊ธฐ์กด ์ด ๋ณ๊ฒฝ์ ์ด ์์ฒด๊ฐ ๋ณต์ฌ๋์ง ์์ผ๋ฏ๋ก ์์ ๋ณต์ฌ์์ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค.
dt[TRUE]
์์ ๋ณต์ฌ๋ฅผ ํ์ฉํ์ง ์์ผ๋ฉด ์ด ๋ฌธ์ ๋ ์๋์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค.
๊ฒฐ๊ตญ. ํ์ง๋ง ๊ทธ ๋์ ์ฐ๋ฆฌ๋ @renkun-ken์ ์ํฌํ๋ก๋ฅผ ์ค๋จํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐ ํ์ธ์.
๋ณต์ฌ ๋์์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ ์ฝ๋๋ฅผ ํ ์คํธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
DT = data.table(a=c(1,2), b=c("b","a"))
address(DT)
address(DT[])
address(DT[, .SD])
address(DT[TRUE])
sapply(DT, address)
sapply(DT[], address)
sapply(DT[, .SD], address)
sapply(DT[TRUE], address)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, setkey, ๊ธฐ์กด ์ด ๋ณ๊ฒฝ์ ์ด ์์ฒด๊ฐ ๋ณต์ฌ๋์ง ์์ผ๋ฏ๋ก ์์ ๋ณต์ฌ์์ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค.