Data.table: DT[TRUE] рдЕрдорд╛рдиреНрдп рдХреБрдВрдЬреА рдХреА рдУрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рджрд┐рд╕ре░ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Rdatatable/data.table

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ DT[TRUE] рдПрдХ рдЙрдерд▓реА рдкреНрд░рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдерд╛ред рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдереАред #3214, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд #2254 рдореЗрдВ рдЗрд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @renkun-ken рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

  • [рдПрдХреНрд╕] #3214
  • [] #реиреирелрек

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 рдЬреИрд╕рд╛ рд╣реИ рдЬреЛ рдЙрдерд▓реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдирдП рдХреЙрд▓рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рд╣реИ, рдореМрдЬреВрджрд╛ рдХреЙрд▓рдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ!

рдирдпрд╛ рдкрд░реАрдХреНрд╖рдг резрелрекреи.режрео рдкреАрдЖрд░ # реирейрезрей рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рдерд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдВ, рд╕реЗрдЯрдХреА, рдореМрдЬреВрджрд╛ рдХреЙрд▓рдо рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓рдо рд╕реНрд╡рдпрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдВ, рд╕реЗрдЯрдХреА, рдореМрдЬреВрджрд╛ рдХреЙрд▓рдо рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдерд▓реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓рдо рд╕реНрд╡рдпрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЕрдЧрд░ рд╣рдо 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)
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rafapereirabr picture rafapereirabr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

st-pasha picture st-pasha  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arunsrinivasan picture arunsrinivasan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

st-pasha picture st-pasha  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alex46015 picture alex46015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ