рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ 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 рдЬреИрд╕рд╛ рд╣реИ рдЬреЛ рдЙрдерд▓реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдирдП рдХреЙрд▓рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рд╣реИ, рдореМрдЬреВрджрд╛ рдХреЙрд▓рдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ!
рдирдпрд╛ рдкрд░реАрдХреНрд╖рдг резрелрекреи.режрео рдкреАрдЖрд░ # реирейрезрей рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рдерд╛ред
рд╣рд╛рдВ, рд╕реЗрдЯрдХреА, рдореМрдЬреВрджрд╛ рдХреЙрд▓рдо рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓рдо рд╕реНрд╡рдпрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдЧрд░ рд╣рдо dt[TRUE]
рд╕рд╛рде рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдВрдЧреЗ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдкрдиреЗ рдЖрдк рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЖрдЦрд┐рд░рдХрд╛рд░ред рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ, рд╣рдо @ renkun-ken рдХреЗ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝ рд╕рдХрддреЗред
рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг: https://github.com/Rdatatable/data.table/issues/3214#issuecomment -462490046
рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
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)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдВ, рд╕реЗрдЯрдХреА, рдореМрдЬреВрджрд╛ рдХреЙрд▓рдо рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓рдо рд╕реНрд╡рдпрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред