Data.table: рд╢реБрджреНрдз рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдордИ 2019  ┬╖  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 рдХреА рддрд░рд╣, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдорд╛рдЗрдХрд▓ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯ рдЬрд╛рдирд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ; рдпрд╣ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдХрд╛ рд╣реИред рдЗрд╕реЗ рдкреАрдЖрд░ рдХреЛ рдЖрд╕рд╛рди/рддреЗрдЬрд╝ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╣рдо рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдореНрдореАрдж рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред
= рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ x<-3 рдХреЗ рдЦрддрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм x < -3 рдХрд╛ рдорддрд▓рдм рдерд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ R рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдПрдХ рдорд╛рди рд╣реИ (рдФрд░ -3 рдХреЛ рдЪреБрдкрдЪрд╛рдк TRUE рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИред = рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдВрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛрдВред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ <- рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ рдХрд┐ <- рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рд╣рдордд рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

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

IMO рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдорд╛рди рдирд╣реАрдВ рд╣реИред рдореИрдВ = рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЪрд╛рд░реЛрдВ рдУрд░ <- рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред AFAIR рд╣рдорд╛рд░реА рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ <- рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ) рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдорд╛рдирддреЗ рд╣реБрдПред рддрд╛рд▓рд┐рдХрд╛ рдХреЛрдб рдЖрд░ рдЬрд╛рдирддреЗ рд╣реИрдВред рдиреБрдХрд╕рд╛рди рдХреЗрд╡рд▓ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЙрди рдЙрдкрджреЗрд╢реЛрдВ рдХреЛ рд╢рд╛рдпрдж рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ . рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрдж рдХреЛ рдЬреНрдпрд╛рджрд╛ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдХреА рдЧрдИ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рдпрд╣ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛: https://github.com/Rdatatable/data.table/pull/3580/commits/50243432f2c20310107989606d56ab52fab28ad4

рдореБрдЭреЗ рдирд┐рд░рдВрддрд░рддрд╛ рдХреА рднрд╛рд╡рдирд╛ рд╕реЗ рдЗрд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред

Low рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорд╣рддреНрд╡ рдмрд╣реБрдд рдХрдо рд╣реИред

@jangorecki рдХреА рддрд░рд╣, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдорд╛рдЗрдХрд▓ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд░рд╛рд╕реНрддреЗ рд╕реЗ рд╣рдЯ рдЬрд╛рдирд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ; рдпрд╣ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдХрд╛ рд╣реИред рдЗрд╕реЗ рдкреАрдЖрд░ рдХреЛ рдЖрд╕рд╛рди/рддреЗрдЬрд╝ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╣рдо рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдореНрдореАрдж рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред
= рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ x<-3 рдХреЗ рдЦрддрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм x < -3 рдХрд╛ рдорддрд▓рдм рдерд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ R рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдПрдХ рдорд╛рди рд╣реИ (рдФрд░ -3 рдХреЛ рдЪреБрдкрдЪрд╛рдк TRUE рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИред = рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЬрд╛рдВрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛрдВред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ <- рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ рдХрд┐ <- рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рд╣рдордд рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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