рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдЖрд░ рд╡рд╛ рдкрд╛рдЗрдерди рдЦреЛрдЬреА рдЧрд░реНрджрд╛, рддрдкрд╛рдИрд▓реЗ рд▓рд╛рдЦреМрдВ рд▓реЗрдЦрд╣рд░реВ рд░ рдбреЗрдЯрд╛рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдЭ рд░рд╛рдореНрд░реЛ, рдЫрд┐рдЯреЛ рд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рд╖рдпрд╣рд░реВрдорд╛ рдЫрд▓рдлрд▓рд╣рд░реВрдХреЛ рдХрд┐рд▓реЛрдорд┐рдЯрд░ рднреЗрдЯреНрдЯрд╛рдЙрдиреБрд╣реБрдиреЗрдЫред рддрд░ рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпреА рд╕рдмреИ рд▓реЗрдЦ рд░ рд╡рд┐рд╡рд╛рджрд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧреА рдЫреИрдирдиреНред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдпрд╕ рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рджреБрд╡реИ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рднреВрдд рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБ рд╣реЛред рд░ рдкрд╛рдардХрд╣рд░реВрд▓рд╛рдИ рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрдЭреИ рдерд╛рд╣рд╛ рдирднрдПрдХреЛ рдХреБрд░рд╛рдорд╛ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдорд╛рд╕реНрдЯрд░ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред Python рдорд╛ рд▓реЗрдЦреНрдиреЗрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, R рдорд╛ рдЙрд╣реА рдХреБрд░рд╛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБрд╣реЛрд╕реН, рд░ рдпрд╕рдХреЛ рдЙрд▓реНрдЯреЛред

рд▓реЗрдЦрдХреЛ рдмрдЦрдд рд╣рд╛рдореА R рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрдиреЗрдЫреМрдВред рдпреА рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╣реБрдиреНред tidyverseрд░ рдкреНрдпрд╛рдХреЗрдЬ рдкрдирд┐ data.tableред рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН pandas, Python рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрдпрд╛рдХреЗрдЬред

рд╣рд╛рдореА рдкрд╛рдЗрдерди рд░ рдЖрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрджреЗрдЦрд┐ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдорд╛рд░реНрдЧрдорд╛ рдЪрд░рдгрдмрджреНрдз рд░реВрдкрдорд╛ рдЬрд╛рдиреЗрдЫреМрдВред

рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ

рдпрд╕ рд▓реЗрдЦрд▓рд╛рдИ рдзреЛрдЦрд╛ рдкрд╛рдирд╛рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдордзреНрдпреЗ рдХреБрдиреИ рдПрдХрдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЕрдкрд░реЗрд╢рди рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрд┐рд░реНрд╕рдиреБрднрдпреЛ рднрдиреЗред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

  1. R рд░ Python рдмреАрдЪрдХреЛ рдореБрдЦреНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ
    1.1ред рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрджреИ
    1.2ред рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ
    1.3ред рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛
    1.4ред рд╡рд┐рдзрд┐ рд░ OOP
    1.5ред рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ
    1.6ред рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛
  2. рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣реА рд╢рдмреНрджрд╣рд░реВ
    2.1ред рд╡реНрдпрд╡рд╕реНрдерд┐рдд
    2.2ред рдбрд╛рдЯрд╛.рдЯреЗрдмрд▓
    2.3ред рдкрд╛рдгреНрдбрд╛
  3. рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
  4. рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ
  5. рдбрд╛рдЯрд╛рдлреНрд░реЗрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
  6. рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ
  7. рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ
  8. рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХреАрдХрд░рдг
  9. рдЯреЗрдмрд▓рд╣рд░реВрдХреЛ рдард╛рдбреЛ рд╕рдВрдШ (UNION)
  10. рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рддреЗрд░реНрд╕реЛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН (JOIN)
  11. рдЖрдзрд╛рд░рднреВрдд рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрддрдореНрднрд╣рд░реВ
  12. R рд░ Python рдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рд╡рд┐рдзрд┐рд╣рд░реВ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░ рддрд╛рд▓рд┐рдХрд╛
  13. рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
  14. рддрдкрд╛рдЗрдБ рдХреБрди рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЫреЛрдЯреЛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдореЗрд░реЛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо ╨╕ YouTube рдЪреНрдпрд╛рдирд▓рд╣рд░реВред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рдордЧреНрд░реА рдЖрд░ рднрд╛рд╖рд╛рдорд╛ рд╕рдорд░реНрдкрд┐рдд рдЫред

R рд░ Python рдмреАрдЪрдХреЛ рдореБрдЦреНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ

рддрдкрд╛рдИрд▓рд╛рдИ рдкрд╛рдЗрдердирдмрд╛рдЯ R рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрди, рд╡рд╛ рдпрд╕рдХреЛ рд╡рд┐рдкрд░рд┐рдд, рдо рдХреЗрд╣рд┐ рдореБрдЦреНрдп рдмреБрдБрджрд╛рд╣рд░реВ рджрд┐рдиреЗрдЫреБ рдЬреБрди рддрдкрд╛рдИрд▓реЗ рдзреНрдпрд╛рди рджрд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрджреИ

рдПрдХрдЪреЛрдЯрд┐ рдкреНрдпрд╛рдХреЗрдЬ R рдорд╛ рд▓реЛрдб рднрдПрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред рдзреЗрд░реИ рдЬрд╕реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдпреЛ R рдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдЫреИрди, рддрд░ рдпреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдХреЛрдбрдорд╛ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВ рдордзреНрдпреЗ рдХреБрдиреИ рдПрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ рддрдкрд╛рдЗрдБрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬ рдЖрдпрд╛рдд рдЧрд░реНрдиреБ рдкрд░реНрджреИрди, рддрд░ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдирд╛рдо рд░ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реНред R рдорд╛ рдкреНрдпрд╛рдХреЗрдЬ рд░ рдкреНрд░рдХрд╛рд░реНрдп рдирд╛рдорд╣рд░реВ рдмреАрдЪрдХреЛ рд╡рд┐рднрд╛рдЬрдХ рдбрдмрд▓ рдХреЛрд▓реЛрди рд╣реЛред package_name::function_name().

Python рдорд╛, рдпрд╕рдХреЛ рд╡рд┐рдкрд░рд┐рдд, рдпрд╕рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд▓ рдЧрд░реНрди рдХреНрд▓рд╛рд╕рд┐рдХ рдорд╛рдирд┐рдиреНрдЫред рдЬрдм рдкреНрдпрд╛рдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдиреНрдЫ, рдпрд╕рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЫреЛрдЯреЛ рдирд╛рдо рджрд┐рдЗрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред pandas рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЫрджреНрдо рдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ pdред рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд░реНрдп рдбрдЯ рдорд╛рд░реНрдлрдд рдкрд╣реБрдБрдЪ рдЧрд░рд┐рдиреНрдЫ package_name.function_name().

рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ

R рдорд╛, рд╡рд╕реНрддреБрдорд╛ рдорд╛рди рддреЛрдХреНрди рдПрд░реЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╕рд╛рдорд╛рдиреНрдп рдЫред obj_name <- value, рдпрджреНрдпрдкрд┐ рдПрдХрд▓ рдмрд░рд╛рдмрд░ рдЪрд┐рдиреНрд╣рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫ, R рдорд╛ рдПрдХрд▓ рдмрд░рд╛рдмрд░ рдЪрд┐рдиреНрд╣ рдореБрдЦреНрдп рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рддрд░реНрдХрд╣рд░реВрдорд╛ рдорд╛рдирд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдкрд╛рдЗрдердирдорд╛, рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдПрдХрд▓ рдмрд░рд╛рдмрд░ рдЪрд┐рдиреНрд╣рдХреЛ рд╕рд╛рде рдЧрд░рд┐рдиреНрдЫ obj_name = value.

рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛

рдпрд╣рд╛рдБ рдкрдирд┐ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдЫрдиреНред R рдорд╛, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдПрдХрдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫ рд░ рдкрд░рд┐рдгрд╛рдо рджрд╛рдпрд░рд╛рдорд╛ рд╕рдмреИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрддреНрд╡рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ,

рдкрд╛рдЗрдердирдорд╛, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╢реВрдиреНрдпрдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫ рд░ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рджрд╛рдпрд░рд╛рдорд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЕрдиреНрддрд┐рдо рддрддреНрд╡ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдБрджреИрдиред рддреНрдпрд╕реИрд▓реЗ рдбрд┐рдЬрд╛рдЗрди x[i:j] Python рдорд╛ j рддрддреНрд╡ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИрдиред

рддреНрдпрд╣рд╛рдБ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдорд╛ рдкрдирд┐ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдЫрдиреН, рдЖрд░ рдиреЛрдЯреЗрд╢рдирдорд╛ x[-1] рдЕрдиреНрддрд┐рдо рдмрд╛рд╣реЗрдХ рднреЗрдХреНрдЯрд░рдХрд╛ рд╕рдмреИ рддрддреНрд╡рд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫред рдкрд╛рдЗрдердирдорд╛, рд╕рдорд╛рди рдиреЛрдЯреЗрд╢рдирд▓реЗ рдЕрдиреНрддрд┐рдо рддрддреНрд╡ рдорд╛рддреНрд░ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫред

рд╡рд┐рдзрд┐ рд░ OOP

R рд▓реЗ OOP рд▓рд╛рдИ рдЖрдлреНрдиреИ рддрд░рд┐рдХрд╛рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рдореИрд▓реЗ рдпрд╕ рд▓реЗрдЦрдорд╛ рд▓реЗрдЦреЗрдХреЛ рдЫреБ "R рднрд╛рд╖рд╛рдорд╛ OOP (рднрд╛рдЧ 1): S3 рдХрдХреНрд╖рд╛рд╣рд░реВ"ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, R рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ рд╣реЛ, рд░ рдпрд╕рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдирд┐рд░реНрдорд┐рдд рд╣реБрдиреНрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдПрдХреНрд╕реЗрд▓ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдЬрд╛рдиреБрд╣реЛрд╕реН tydiverse рдпреЛ рднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреЗрдЫ pandasред рдпрджреНрдпрдкрд┐ рдпреЛ рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╡рд┐рдЪрд╛рд░ рд╣реБрди рд╕рдХреНрдЫред

рдЫреЛрдЯрдХрд░реАрдорд╛, R рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВрд╕рдБрдЧ рд╡рд┐рдзрд┐рд╣рд░реВ рдЫреИрдирдиреН (рдпрджрд┐ рд╣рд╛рдореА S3 рд╡рд░реНрдЧрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫреМрдВ, рддрд░ рддреНрдпрд╣рд╛рдБ рдЕрдиреНрдп OOP рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рдЫрдиреН рдЬреБрди рдзреЗрд░реИ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдЫрдиреН)ред рддреНрдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН рдЬреБрди рд╡рд╕реНрддреБрдХреЛ рд╡рд░реНрдЧрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдлрд░рдХ рддрд░рд┐рдХрд╛рд▓реЗ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫред

рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ

рд╕рд╛рдпрдж рдпреЛ рдирд╛рдо рдХреЛ рд▓рд╛рдЧреА рд╣реЛ pandas рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд╣реА рд╣реБрдиреЗрдЫреИрди, рддрд░ рдо рдЕрд░реНрде рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреБред

рдордзреНрдпрд╡рд░реНрддреА рдЧрдгрдирд╛рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрди рд░ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрд╣рд░реВ рдЙрддреНрдкрд╛рджрди рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддреАред рдПрдХ рдкреНрд░рдХрд╛рд░реНрдпрдмрд╛рдЯ рдЕрд░реНрдХреЛрдорд╛ рдЧрдгрдирд╛рдХреЛ рдирддрд┐рдЬрд╛ рдкрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдмрдЪрдд рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдирд┐рдореНрди рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдиреБрд╣реЛрд╕реН, рдЬрд╕рдорд╛ рд╣рд╛рдореА рдордзреНрдпрд╡рд░реНрддреА рдЧрдгрдирд╛рд╣рд░реВ рдЕрд▓рдЧ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдЫреМрдВ:

temp_object <- func1()
temp_object2 <- func2(temp_object )
obj <- func3(temp_object2 )

рд╣рд╛рдореАрд▓реЗ рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ 3 рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдпреМрдВ, рд░ рдкреНрд░рддреНрдпреЗрдХрдХреЛ рдирддрд┐рдЬрд╛ рдЫреБрдЯреНрдЯреИ рд╡рд╕реНрддреБрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╣рд╛рдореАрд▓рд╛рдИ рдпреА рдордзреНрдпрд╡рд░реНрддреА рд╡рд╕реНрддреБрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рд╡рд╛ рдЕрдЭ рдирд░рд╛рдореНрд░реЛ, рддрд░ рдПрдХреНрд╕реЗрд▓ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдмрдвреА рдкрд░рд┐рдЪрд┐рддред

obj  <- func3(func2(func1()))

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореАрд▓реЗ рдордзреНрдпрд╡рд░реНрддреА рдЧрдгрдирд╛ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдмрдЪрдд рдЧрд░реЗрдиреМрдВ, рддрд░ рдиреЗрд╕реНрдЯреЗрдб рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд╕рдБрдЧ рдХреЛрдб рдкрдвреНрди рдзреЗрд░реИ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред

рд╣рд╛рдореА R рдорд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдзреЗрд░реИ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рд╣реЗрд░реНрдиреЗрдЫреМрдВ, рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░рд┐рдХрд╛рдорд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдЫрдиреНред

рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ tidyverse рдЕрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ %>%.

obj <- func1() %>% 
            func2() %>%
            func3()

рдпрд╕рд░реА рд╣рд╛рдореАрд▓реЗ рдХрд╛рдордХреЛ рдирддрд┐рдЬрд╛ рд▓рд┐рдиреНрдЫреМрдВ func1() рд░ рдпрд╕рд▓рд╛рдИ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН func2(), рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдпреЛ рдЧрдгрдирд╛рдХреЛ рдирддрд┐рдЬрд╛рд▓рд╛рдИ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд╕ рдЧрд░реНрдЫреМрдВ func3()ред рд░ рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рд╡рд╕реНрддреБрдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдЧрдгрдирд╛рд╣рд░реВ рд▓реЗрдЦреНрдЫреМрдВ obj <-.

рдорд╛рдерд┐рдХрд╛ рд╕рдмреИ рдпрд╕ рдореЗрдорджреНрд╡рд╛рд░рд╛ рд╢рдмреНрджрд╣рд░реВ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдЪрд┐рддреНрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ:
рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

╨Т data.table рдЪреЗрдирд╣рд░реВ рд╕рдорд╛рди рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

newDT <- DT[where, select|update|do, by][where, select|update|do, by][where, select|update|do, by]

рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рддрдкрд╛рдИрд▓реЗ рдЕрдШрд┐рд▓реНрд▓реЛ рдЕрдкрд░реЗрд╢рдирдХреЛ рдирддрд┐рдЬрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

╨Т pandas рддреНрдпрд╕реНрддрд╛ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдбрдЯрджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реБрдиреНрдЫрдиреНред

obj = df.fun1().fun2().fun3()

рддреАред рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЯреЗрдмрд▓ рд▓рд┐рдиреНрдЫреМрдВ df рд░ рдЙрдирдХреЛ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН fun1(), рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдкреНрд░рд╛рдкреНрдд рдирддрд┐рдЬрд╛рдорд╛ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдЧрд░реНрдЫреМрдВ fun2()рдкрдЫрд┐ fun3()ред рдирддрд┐рдЬрд╛ рдПрдХ рд╡рд╕реНрддреБ рдорд╛ рдмрдЪрдд рдЧрд░рд┐рдПрдХреЛ рдЫ obj .

рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛

R рд░ Python рдорд╛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рд╕рдорд╛рди рдЫрдиреН, рддрд░ рдлрд░рдХ рдирд╛рдорд╣рд░реВ рдЫрдиреНред

рд╡рд┐рд╡рд░рдг
рдирд╛рдордорд╛ рдЖрд░
Python/pandas рдорд╛ рдирд╛рдо

рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛
data.frame, data.table, tibble
рдбрд╛рдЯрд╛рдлреНрд░реЗрдо

рдорд╛рдирд╣рд░реВрдХреЛ рдПрдХ-рдЖрдпрд╛рдореА рд╕реВрдЪреА
рднреЗрдХреНрдЯрд░
рдкрд╛рдгреНрдбрд╛рдорд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╡рд╛ рд╢реБрджреНрдз рдкрд╛рдЗрдердирдорд╛ рд╕реВрдЪреА

рдмрд╣реБ-рд╕реНрддрд░реАрдп рдЧреИрд░-рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛
рд╕реВрдЪреА
рд╢рдмреНрджрдХреЛрд╢ (рдбрд┐рдХреНрдЯ)

рд╣рд╛рдореА рддрд▓ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рдорд╛ рдХреЗрд╣реА рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд░ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣реА рд╢рдмреНрджрд╣рд░реВ

рдкрд╣рд┐рд▓реЗ, рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдереЛрд░реИ рдмрддрд╛рдЙрдиреЗрдЫреБ рдЬреБрди рддрдкрд╛рдИрдВ рдпрд╕ рд▓реЗрдЦрдХреЛ рдмрдЦрдд рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреЗрдЫред

рд╡реНрдпрд╡рд╕реНрдерд┐рдд

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ: tidyverse.org
рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ
рдкреБрд╕реНрддрдХрд╛рд▓рдп tidyverse рд╣реЗрдбрд▓реЗ рд╡рд┐рдХрд╣рдо, RStudio рдорд╛ рд╡рд░рд┐рд╖реНрда рдЕрдиреБрд╕рдиреНрдзрд╛рди рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рддред tidyverse рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрдирд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрд╕рдордзреНрдпреЗ 5 CRAN рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рд╢реАрд░реНрд╖ 10 рдбрд╛рдЙрдирд▓реЛрдбрд╣рд░реВрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдХреЛрд░рдорд╛ рдирд┐рдореНрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╣реБрдиреНрдЫрдиреН: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcatsред рдпреА рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЙрджреНрджреЗрд╢реНрдп рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ dplyr рдбрд╛рдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдХреЛ рд▓рд╛рдЧреА рдмрдирд╛рдИрдПрдХреЛ, tidyr рдбрд╛рдЯрд╛рд▓рд╛рдИ рд╕рдлрд╛ рдлрд╛рд░рдордорд╛ рд▓реНрдпрд╛рдЙрди, stringr рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ, рд░ ggplot2 рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛ рджреГрд╢реНрдп рдЙрдкрдХрд░рдг рдордзреНрдпреЗ рдПрдХ рд╣реЛред

рдлрд╛рдЗрджрд╛ tidyverse рд╕рд░рд▓рддрд╛ рд░ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдкрдвреНрди рд╕рдЬрд┐рд▓реЛ рдЫ, рдЬреБрди рдзреЗрд░реИ рддрд░рд┐рдХрд╛рдорд╛ SQL рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЬрд╕реНрддреИ рдЫред

рдбрд╛рдЯрд╛.рдЯреЗрдмрд▓

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИрдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ: r-datatable.com

рджреНрд╡рд╛рд░рд╛ data.table H2O.ai рдХреЛ рдореНрдпрд╛рдЯ рдбреЛрд▓ рд╣реЛред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдкрд╣рд┐рд▓реЛ рд╡рд┐рдореЛрдЪрди 2006 рдорд╛ рднрдПрдХреЛ рдерд┐рдпреЛред

рдкреНрдпрд╛рдХреЗрдЬ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рднрд┐рддреНрд░ рдЬрд╕реНрддреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫреИрди tidyverse рд░ R рдорд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдбреЗрдЯрд╛рдлреНрд░реЗрдорд╣рд░реВрдХреЛ рд╕рдореНрдЭрдирд╛ рджрд┐рд▓рд╛рдЙрдиреЗ рдЫ, рддрд░ рдПрдХреИ рд╕рдордпрдорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдорд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдпрд╕ рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рднрдПрдХреЛ рддрд╛рд▓рд┐рдХрд╛рд╕рдБрдЧ рднрдПрдХрд╛ рд╕рдмреИ рд╣реЗрд░рдлреЗрд░рд╣рд░реВ рд╡рд░реНрдЧрд╛рдХрд╛рд░ рдХреЛрд╖реНрдардХрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН, рд░ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ data.table SQL рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдЬрд╕реНрддреИ рдХреЗрд╣рд┐ рдкрд╛рдЙрдиреБрднрдпреЛ: data.table[ WHERE, SELECT, GROUP BY ]

рдпрд╕ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдмрд▓ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рдЧрддрд┐ рд╣реЛред

рдкрд╛рдгреНрдбрд╛

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ: pandas.pydata.org рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдирд╛рдо рдЗрдХреЛрдиреЛрдореЗрдЯреНрд░рд┐рдХ рд╢рдмреНрдж "рдкреНрдпрд╛рдирд▓ рдбреЗрдЯрд╛" рдмрд╛рдЯ рдЖрдПрдХреЛ рд╣реЛ, рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдмрд╣реБрдЖрдпрд╛рдорд┐рдХ рд╕рдВрд░рдЪрд┐рдд рд╕реЗрдЯрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рджреНрд╡рд╛рд░рд╛ pandas рдЕрдореЗрд░рд┐рдХреА Wes McKinney рд╣реБрдиреБрд╣реБрдиреНрдЫред

рдЬрдм рдпреЛ рдкрд╛рдЗрдерди рдорд╛ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рд▓рд╛рдЧреА рдЖрдЙрдБрдЫ, рдмрд░рд╛рдмрд░ pandas рдЫреИрдиред рдПрдХ рдзреЗрд░реИ рдмрд╣реБ-рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рдЙрдЪреНрдЪ-рд╕реНрддрд░ рдкреНрдпрд╛рдХреЗрдЬ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╕реНрд░реЛрддрдмрд╛рдЯ рдбреЗрдЯрд╛ рд▓реЛрдб рдЧрд░реНрдиреЗ рджреЗрдЦрд┐ рдпрд╕рд▓рд╛рдИ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди рдбреЗрдЯрд╛рд╕рдБрдЧ рдХреБрдиреИ рдкрдирд┐ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдердк рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

рдпрд╕ рд▓реЗрдЦрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЖрдзрд╛рд░рднреВрдд R рд░ Python рд╡рд┐рддрд░рдгрд╣рд░реВрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХрд╛ рдЫреИрдирдиреНред рдпрджреНрдпрдкрд┐ рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдЪреЗрддрд╛рд╡рдиреА рдЫ, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ Anaconda рд╡рд┐рддрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдердк рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН pandas рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред

R рдорд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

рдпрджрд┐ рддрдкрд╛рдЗрдБрд▓реЗ рдХрдореНрддрд┐рдорд╛ рдПрдХ рдкрдЯрдХ RStudio рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдЦреЛрд▓реНрдиреБ рднрдПрдХреЛ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ R рдорд╛ рдЖрд╡рд╢реНрдпрдХ рдкреНрдпрд╛рдХреЗрдЬ рдХрд╕рд░реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдерд╛рд╣рд╛ рдЫред рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рдорд╛рдирдХ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред install.packages() рдпрд╕рд▓рд╛рдИ рд╕реАрдзрд╛ рдЖрд░ рдорд╛ рдЪрд▓рд╛рдПрд░ред

# ╤Г╤Б╤В╨░╨╜╨╛╨▓╨║╨░ ╨┐╨░╨║╨╡╤В╨╛╨▓
install.packages("vroom")
install.packages("readr")
install.packages("dplyr")
install.packages("data.table")

рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐, рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ library().

# ╨┐╨╛╨┤╨║╨╗╤О╤З╨╡╨╜╨╕╨╡ ╨╕╨╗╨╕ ╨╕╨╝╨┐╨╛╤А╤В ╨┐╨░╨║╨╡╤В╨╛╨▓ ╨▓ ╤А╨░╨▒╨╛╤З╨╡╨╡ ╨╛╨║╤А╤Г╨╢╨╡╨╜╨╕╨╡
library(vroom)
library(readr)
library(dplyr)
library(data.table)

рдкрд╛рдЗрдердирдорд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

рддреНрдпрд╕реЛрднрдП, рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╢реБрджреНрдз рдкрд╛рдЗрдерди рд╕реНрдерд╛рдкрд┐рдд рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ pandas рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрдХреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рдЖрдзрд╛рд░рдорд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди, рд╡рд╛ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН рд░ рдирд┐рдореНрди рдЖрджреЗрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

pip install pandas

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдкрд╛рдЗрдердирдорд╛ рдлрд░реНрдХрдиреНрдЫреМрдВ рд░ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдкреНрдпрд╛рдХреЗрдЬ рдЖрдпрд╛рдд рдЧрд░реНрдЫреМрдВ import.

import pandas as pd

рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ

рдбрд╛рдЯрд╛ рдЦрдирди рдбрд╛рдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЪрд░рдгрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рджреБрдмреИ рдкрд╛рдЗрдерди рд░ рдЖрд░, рдпрджрд┐ рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╕реНрд░реЛрддрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд╡реНрдпрд╛рдкрдХ рдЕрд╡рд╕рд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ: рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓рд╣рд░реВ, рдЗрдиреНрдЯрд░рдиреЗрдЯрдмрд╛рдЯ рдлрд╛рдЗрд▓рд╣рд░реВ, рд╡реЗрдмрд╕рд╛рдЗрдЯрд╣рд░реВ, рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдзреЗрд░реИ рдбреЗрдЯрд╛рд╕реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ:

  1. рдЧреБрдЧрд▓ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕рдмрд╛рдЯ рджреБрдИ рдбрд╛рдЙрдирд▓реЛрдбрд╣рд░реВред
  2. рдЯрд╛рдЗрдЯрд╛рдирд┐рдХ рдпрд╛рддреНрд░реА рдбрд╛рдЯрд╛рд╕реЗрдЯред

рд╕рдмреИ рдбрд╛рдЯрд╛ рдореЗрд░реЛ рдорд╛ рдЫ GitHub csv рд░ tsv рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ред рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╣рд╛рдБрдмрд╛рдЯ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗрдЫреМрдВ?

R рдорд╛ рдбреЗрдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ: tidyverse, vroom, readr

рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрди tidyverse рддреНрдпрд╣рд╛рдБ рджреБрдИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЫрдиреН: vroom, readr. vroom рдердк рдЖрдзреБрдирд┐рдХ, рддрд░ рднрд╡рд┐рд╖реНрдпрдорд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕рдВрдпреБрдХреНрдд рд╣реБрди рд╕рдХреНрдЫред

рдмрд╛рдЯ рдЙрджреНрдзрд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ vroom.

vroom рдмрдирд╛рдо рдкрд╛рдардХ
рдХреЗ рд░рд┐рд▓реАрдЬ рдЧрд░реНрдЫ vroom рд▓рд╛рдЧрд┐ рдорддрд▓рдм readr? рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рджреБрдИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░реНрди рджрд┐рдиреЗ рдпреЛрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ, рддрд░ рд╕рдореНрднрд╡рддрдГ рд╣рд╛рдореА рднрд╡рд┐рд╖реНрдпрдорд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдПрдХрдЬреБрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред Vroom рдХреЛ рдЕрд▓реНрдЫреА рдкрдврд╛рдЗрдХреЛ рдПрдХ рд╣рд╛рдирд┐ рднрдиреЗрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рдбреЗрдЯрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЕрдЧрд╛рдбрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рдПрдХрддрд╛рдмрджреНрдз рдЧрд░реНрди рдХреЗрд╣реА рд╕реЛрдЪ рдЖрд╡рд╢реНрдпрдХ рдЫред

vroom рдмрдирд╛рдо рдкрд╛рдардХ
рд░рд┐рд▓рд┐рдЬрдХреЛ рдЕрд░реНрде рдХреЗ рд╣реЛ? vroom рд▓рд╛рдЧрд┐ readr? рдЕрд╣рд┐рд▓реЗ рд╣рд╛рдореА рджреБрдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЫреБрдЯреНрдЯрд╛рдЫреБрдЯреНрдЯреИ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЫреМрдВ, рддрд░ рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рднрд╡рд┐рд╖реНрдпрдорд╛ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗрдЫреМрдВред рдЕрд▓реНрдЫреА рдкрдвреНрдиреЗ рд╣рд╛рдирд┐ рдордзреНрдпреЗ рдПрдХ vroom рдпреЛ рд╣реЛ рдХрд┐ рдХреЗрд╣рд┐ рдбреЗрдЯрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЕрдЧреНрд░рд┐рдо рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рджреБрдмреИ рдбрд╛рдЯрд╛ рд▓реЛрдбрд┐рдЩ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╣реЗрд░реНрдиреЗрдЫреМрдВ:

R: vroom рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ

# install.packages("vroom")
library(vroom)

# ╨з╤В╨╡╨╜╨╕╨╡ ╨┤╨░╨╜╨╜╤Л╤Е
## vroom
ga_nov  <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec  <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")

R: readr рдорд╛ рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ

# install.packages("readr")
library(readr)

# ╨з╤В╨╡╨╜╨╕╨╡ ╨┤╨░╨╜╨╜╤Л╤Е
## readr
ga_nov  <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec  <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")

рдкреНрдпрд╛рдХреЗрдЬ рдорд╛ vroom, csv / tsv рдбрд╛рдЯрд╛ рдврд╛рдБрдЪрд╛рдХреЛ рдкрд░реНрд╡рд╛рд╣ рдирдЧрд░реА, рд▓реЛрдбрд┐рдЩ рдПрдЙрдЯреИ рдирд╛рдордХреЛ рдкреНрд░рдХрд╛рд░реНрдпрджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдиреНрдЫред vroom(), рдкреНрдпрд╛рдХреЗрдЬрдорд╛ readr рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХ рдврд╛рдБрдЪрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдлрд░рдХ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ read_tsv() ╨╕ read_csv().

R: data.table рдорд╛ рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ

╨Т data.table рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рдЫ fread().

R: data.table рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ

# install.packages("data.table")
library(data.table)

## data.table
ga_nov  <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec  <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")

Python рдорд╛ рдбреЗрдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ: pandas

рдпрджрд┐ рд╣рд╛рдореА R рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╕рдмреИрднрдиреНрджрд╛ рдирдЬрд┐рдХ рдЫ pandas рд╣реБрдиреЗрдЫ readr, рдХрд┐рдирднрдиреЗ pandas рдЬрд╣рд╛рдБрдмрд╛рдЯ рдкрдирд┐ рдбрд╛рдЯрд╛ рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕рдХреНрдЫ, рд░ рдпрд╕ рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдкрд░рд┐рд╡рд╛рд░ рдЫ read_*().

  • read_csv()
  • read_excel()
  • read_sql()
  • read_json()
  • read_html()

рд░ рдзреЗрд░реИ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рдврд╛рдБрдЪрд╛рд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкрдвреНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛред рддрд░ рд╣рд╛рдореНрд░реЛ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛ рдкрд░реНрдпрд╛рдкреНрдд рдЫ read_table() рд╡рд╛ read_csv() рддрд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╕реЗрдкреНрдЯреЗрдореНрдмрд░ рд╕реНрддрдореНрдн рд╡рд┐рднрд╛рдЬрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиред

Python рдорд╛ рдбреЗрдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ: pandas

import pandas as pd

ga_nov  = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_nowember.csv", sep = "t")
ga_dec  = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_december.csv", sep = "t")
titanic = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/titanic.csv")

рдбрд╛рдЯрд╛рдлреНрд░реЗрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

рддрд╛рд▓рд┐рдХрд╛ рдЯрд╛рдЗрдЯреИрдирд┐рдХ, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рд▓реЛрдб рдЧрд░реНрдпреМрдВ, рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдлрд┐рд▓реНрдб рдЫ рд╕реЗрдХреНрд╕, рдЬрд╕рд▓реЗ рдпрд╛рддреНрд░реБрдХреЛ рд▓рд┐рдВрдЧ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫред

рддрд░ рдпрд╛рддреНрд░реБ рд▓рд┐рдВрдЧрдХреЛ рд╕рд░реНрддрдорд╛ рдбрд╛рдЯрд╛рдХреЛ рдердк рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╕реНрддреБрддрд┐рдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рд▓рд┐рдЩреНрдЧ рдХреЛрдбрдХреЛ рд╕рдЯреНрдЯрд╛ рдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ, рдПрдЙрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛ рдЬрд╕рдорд╛ рдХреНрд░рдорд╢рдГ 2 рд╡рдЯрд╛ рд╕реНрддрдореНрднрд╣рд░реВ (рдХреЛрдб рд░ рд▓рд┐рдЩреНрдЧ рдирд╛рдо) рд░ 2 рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред

R рдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ: tidyverse, dplyr

рддрд▓рдХреЛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгрдорд╛, рд╣рд╛рдореА рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЗрдЪреНрдЫрд┐рдд рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ tibble() .

R: dplyr рдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

## dplyr
### ╤Б╨╛╨╖╨┤╨░╤С╨╝ ╤Б╨┐╤А╨░╨▓╨╛╤З╨╜╨╕╨║
gender <- tibble(id = c(1, 2),
                 gender = c("female", "male"))

R: data.table рдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

R: data.table рдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

## data.table
### ╤Б╨╛╨╖╨┤╨░╤С╨╝ ╤Б╨┐╤А╨░╨▓╨╛╤З╨╜╨╕╨║
gender <- data.table(id = c(1, 2),
                    gender = c("female", "male"))

Python: pandas рдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

╨Т pandas рдлреНрд░реЗрдорд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдзреЗрд░реИ рдЪрд░рдгрд╣рд░реВрдорд╛ рдЧрд░рд┐рдиреНрдЫ, рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореА рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдЙрдБрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╢рдмреНрджрдХреЛрд╢рд▓рд╛рдИ рдбреЗрдЯрд╛рдлреНрд░реЗрдордорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдЫреМрдВред

Python: pandas рдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

# ╤Б╨╛╨╖╨┤╨░╤С╨╝ ╨┤╨░╤В╨░ ╤Д╤А╨╡╨╣╨╝
gender_dict = {'id': [1, 2],
               'gender': ["female", "male"]}
# ╨┐╤А╨╡╨╛╨▒╤А╨░╨╖╤Г╨╡╨╝ ╤Б╨╗╨╛╨▓╨░╤А╤М ╨▓ ╨┤╨░╤В╨░╤Д╤А╨╡╨╣╨╝
gender = pd.DataFrame.from_dict(gender_dict)

рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рджрд░реНрдЬрдиреМрдВ рд╡рд╛ рд╕рдпреМрдВ рд╕реНрддрдореНрднрд╣рд░реВ рдбреЗрдЯрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрдЫрдиреНред рддрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди, рдирд┐рдпрдордХреЛ рд░реВрдкрдорд╛, рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдЙрдкрд▓рдмреНрдз рд╕рдмреИ рд╕реНрддрдореНрднрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рддрд╕рд░реНрде, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛рд╕рдБрдЧ рдЧрд░реНрдиреЗ рдкрд╣рд┐рд▓реЛ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣рдЯрд╛рдЙрдиреБ рд░ рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдУрдЧрдЯреЗрдХреЛ рдореЗрдореЛрд░реА рдЦрд╛рд▓реА рдЧрд░реНрдиреБ рд╣реЛред

R рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ: tidyverse, dplyr

рд╡рд┐рдиреНрдпрд╛рд╕ dplyr SQL рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╕рдБрдЧ рдзреЗрд░реИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫ, рдпрджрд┐ рддрдкрд╛рдИрдВ рдпрд╕рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдкреНрдпрд╛рдХреЗрдЬрд▓рд╛рдИ рдЫрд┐рдЯреНрдЯреИ рдорд╛рд╕реНрдЯрд░ рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред

рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди, рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН select().

рддрд▓ рдХреЛрдбрдХрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЫрдиреН рдЬрд╕рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВ рдирд┐рдореНрди рддрд░рд┐рдХрд╛рд╣рд░реВрдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

  • рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рдирд╛рдорд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджреИ
  • рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрддрдореНрдн рдирд╛рдорд╣рд░реВ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреБрд╣реЛрд╕реН
  • рдбрд╛рдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╡рд╛ рд╕реНрддрдореНрднрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдбрд╛рдЯрд╛ рдХреЛ рдХреБрдиреИ рдЕрдиреНрдп рдЧреБрдг рджреНрд╡рд╛рд░рд╛

R: dplyr рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

# ╨Т╤Л╨▒╨╛╤А ╨╜╤Г╨╢╨╜╤Л╤Е ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓
## dplyr
### ╨▓╤Л╨▒╤А╨░╤В╤М ╨┐╨╛ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤О ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓
select(ga_nov, date, source, sessions)
### ╨╕╤Б╨║╨╗╤О╤З╤М ╨┐╨╛ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤О ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓
select(ga_nov, -medium, -bounces)
### ╨▓╤Л╨▒╤А╨░╤В╤М ╨┐╨╛ ╤А╨╡╨│╤Г╨╗╤П╤А╨╜╨╛╨╝╤Г ╨▓╤Л╤А╨░╨╢╨╡╨╜╨╕╤О, ╤Б╤В╨╛╨▒╤Ж╤Л ╨╕╨╝╨╡╨╜╨░ ╨║╨╛╤В╨╛╤А╤Л╤Е ╨╖╨░╨║╨░╨╜╤З╨╕╨▓╨░╤О╤В╤Б╤П ╨╜╨░ s
select(ga_nov, matches("s$"))
### ╨▓╤Л╨▒╤А╨░╤В╤М ╨┐╨╛ ╤Г╤Б╨╗╨╛╨▓╨╕╤О, ╨▓╤Л╨▒╨╕╤А╨░╨╡╨╝ ╤В╨╛╨╗╤М╨║╨╛ ╤Ж╨╡╨╗╨╛╤З╨╕╤Б╨╗╨╡╨╜╨╜╤Л╨╡ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л
select_if(ga_nov, is.integer)

R: data.table рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

рдорд╛ рдЙрд╕реНрддреИ рдХрд╛рд░реНрдпрд╣рд░реВ data.table рдереЛрд░реИ рдлрд░рдХ рддрд░рд┐рдХрд╛рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫ, рд▓реЗрдЦрдХреЛ рд╕реБрд░реБрдорд╛ рдореИрд▓реЗ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рднрд┐рддреНрд░ рдХреЗ рддрд░реНрдХрд╣рд░реВ рдЫрдиреН рднрдиреНрдиреЗ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдЧрд░реЗрдХреЛ рдЫреБред data.table.

DT[i,j,by]

рдХрд╣рд╛рдВ
i - рдХрд╣рд╛рдБ, i.e. рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ
j - рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН|рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН|рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЕрд░реНрдерд╛рддреН рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░реВрдкрд╛рдиреНрддрд░рдг
рджреНрд╡рд╛рд░рд╛ - рдбрд╛рдЯрд╛ рд╕рдореВрд╣

R: data.table рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

## data.table
### ╨▓╤Л╨▒╤А╨░╤В╤М ╨┐╨╛ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤О ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓
ga_nov[ , .(date, source, sessions) ]
### ╨╕╤Б╨║╨╗╤О╤З╤М ╨┐╨╛ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤О ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓
ga_nov[ , .SD, .SDcols = ! names(ga_nov) %like% "medium|bounces" ]
### ╨▓╤Л╨▒╤А╨░╤В╤М ╨┐╨╛ ╤А╨╡╨│╤Г╨╗╤П╤А╨╜╨╛╨╝╤Г ╨▓╤Л╤А╨░╨╢╨╡╨╜╨╕╤О
ga_nov[, .SD, .SDcols = patterns("s$")]

рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ .SD рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдмреИ рд╕реНрддрдореНрднрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ .SDcols рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрдореНрднрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╡рд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рдирд╛рдорд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВред

Python, pandas рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

рдорд╛ рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди pandas рддрд┐рдиреАрд╣рд░реВрдХреЛ рдирд╛рдорд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред рд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд╛рдорджреНрд╡рд╛рд░рд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рд╡рд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ drop() ╨╕ filter(), рд░ рддрд░реНрдХ рдЕрдХреНрд╖ = 1, рдЬрд╕рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрд▓реЗ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рднрдиреНрджрд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗрд░ рд╕рдВрдХреЗрдд рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред

рдбрд╛рдЯрд╛ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдб рдЪрдпрди рдЧрд░реНрди, рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН select_dtypes()рд░ рддрд░реНрдХрд╣рд░реВрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рд╡рд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрдкрд╛рдИрд▓реЗ рдЫрд╛рдиреНрдиреБ рдкрд░реНрдиреЗ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

Python: pandas рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ

# ╨Т╤Л╨▒╨╛╤А ╨┐╨╛╨╗╨╡╨╣ ╨┐╨╛ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤О
ga_nov[['date', 'source', 'sessions']]
# ╨Ш╤Б╨║╨╗╤О╤З╨╕╤В╤М ╨┐╨╛ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤О
ga_nov.drop(['medium', 'bounces'], axis=1)
# ╨Т╤Л╨▒╤А╨░╤В╤М ╨┐╨╛ ╤А╨╡╨│╤Г╨╗╤П╤А╨╜╨╛╨╝╤Г ╨▓╤Л╤А╨░╨╢╨╡╨╜╨╕╤О
ga_nov.filter(regex="s$", axis=1)
# ╨Т╤Л╨▒╤А╨░╤В╤М ╤З╨╕╤Б╨╗╨╛╨▓╤Л╨╡ ╨┐╨╛╨╗╤П
ga_nov.select_dtypes(include=['number'])
# ╨Т╤Л╨▒╤А╨░╤В╤М ╤В╨╡╨║╤Б╤В╨╛╨▓╤Л╨╡ ╨┐╨╛╨╗╤П
ga_nov.select_dtypes(include=['object'])

рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдзреЗрд░реИ рд╡рд░реНрд╖рдХреЛ рдбрд╛рдЯрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдиреНрддрд┐рдо рдорд╣рд┐рдирд╛ рдорд╛рддреНрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдлреЗрд░рд┐, рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдирд╣рд░реВрд▓реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдврд┐рд▓реЛ рдЧрд░реНрдиреЗрдЫ рд░ рдкреАрд╕реА рдореЗрдореЛрд░реАрд▓рд╛рдИ рдмрдиреНрдж рдЧрд░реНрдиреЗрдЫред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

R рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ: tydyverse, dplyr

╨Т dplyr рдкреНрд░рдХрд╛рд░реНрдп рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ filter()ред рдпрд╕рд▓реЗ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд▓рд┐рдиреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рд╕рд░реНрддрд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред

рддрд╛рд▓рд┐рдХрд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рд▓реЗрдЦреНрджрд╛, рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдЙрджреНрдзрд░рдгрд╣рд░реВ рдмрд┐рдирд╛ рд░ рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдШреЛрд╖рдгрд╛ рдирдЧрд░реА рд╕реНрддрдореНрдн рдирд╛рдорд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рдзреЗрд░реИ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рдирд┐рдореНрди рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

  • & рд╡рд╛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо - рддрд╛рд░реНрдХрд┐рдХ AND
  • | - рддрд╛рд░реНрдХрд┐рдХ рд╡рд╛

R рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ: dplyr

# ╤Д╨╕╨╗╤М╤В╤А╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║
## dplyr
### ╤Д╨╕╨╗╤М╤В╤А╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║ ╨┐╨╛ ╨╛╨┤╨╜╨╛╨╝╤Г ╤Г╤Б╨╗╨╛╨▓╨╕╤О
filter(ga_nov, source == "google")
### ╤Д╨╕╨╗╤М╤В╤А ╨┐╨╛ ╨┤╨▓╤Г╨╝ ╤Г╤Б╨╗╨╛╨▓╨╕╤П╨╝ ╤Б╨╛╨╡╨┤╨╕╨╜╤С╨╜╨╜╤Л╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╝ ╨╕
filter(ga_nov, source == "google" & sessions >= 10)
### ╤Д╨╕╨╗╤М╤В╤А ╨┐╨╛ ╨┤╨▓╤Г╨╝ ╤Г╤Б╨╗╨╛╨▓╨╕╤П╨╝ ╤Б╨╛╨╡╨┤╨╕╨╜╤С╨╜╨╜╤Л╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╝ ╨╕╨╗╨╕
filter(ga_nov, source == "google" | sessions >= 10)

R рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ: data.table

рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдорд╛рдерд┐ рд▓реЗрдЦреЗрдХреЛ рдЬрд╕реНрддреИ, рдорд╛ data.table рдбреЗрдЯрд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рд╕рдВрд▓рдЧреНрди рдЫред

DT[i,j,by]

рдХрд╣рд╛рдВ
i - рдХрд╣рд╛рдБ, i.e. рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ
j - рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН|рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН|рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЕрд░реНрдерд╛рддреН рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░реВрдкрд╛рдиреНрддрд░рдг
рджреНрд╡рд╛рд░рд╛ - рдбрд╛рдЯрд╛ рд╕рдореВрд╣

рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рддрд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ i, рдЬрд╕рдХреЛ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рди рдЫред

рд╕реНрддрдореНрднрд╣рд░реВ рдЙрджреНрдзрд░рдг рдЪрд┐рдиреНрд╣рд╣рд░реВ рдмрд┐рдирд╛ рд░ рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧрд░реА рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░рд┐рдиреНрдЫред

рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рд╕рдорд╛рди рд░реВрдкрдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫрдиреН dplyr & рд░ | рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ рдорд╛рд░реНрдлрддред

R рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ: data.table

## data.table
### ╤Д╨╕╨╗╤М╤В╤А╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║ ╨┐╨╛ ╨╛╨┤╨╜╨╛╨╝╤Г ╤Г╤Б╨╗╨╛╨▓╨╕╤О
ga_nov[source == "google"]
### ╤Д╨╕╨╗╤М╤В╤А ╨┐╨╛ ╨┤╨▓╤Г╨╝ ╤Г╤Б╨╗╨╛╨▓╨╕╤П╨╝ ╤Б╨╛╨╡╨┤╨╕╨╜╤С╨╜╨╜╤Л╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╝ ╨╕
ga_nov[source == "google" & sessions >= 10]
### ╤Д╨╕╨╗╤М╤В╤А ╨┐╨╛ ╨┤╨▓╤Г╨╝ ╤Г╤Б╨╗╨╛╨▓╨╕╤П╨╝ ╤Б╨╛╨╡╨┤╨╕╨╜╤С╨╜╨╜╤Л╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╝ ╨╕╨╗╨╕
ga_nov[source == "google" | sessions >= 10]

Python рдорд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рддрд╛рд░: pandas

рднрд┐рддреНрд░ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН pandas рдорд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдЬрд╕реНрддреИ data.table, рд░ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдорд╛ рдЧрд░рд┐рдиреНрдЫред

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЖрд╡рд╢реНрдпрдХ рд░реВрдкрдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдордХреЛ рдирд╛рдо рд╕рдВрдХреЗрдд рдЧрд░реЗрд░ рдЧрд░рд┐рдиреНрдЫ; рддреНрдпрд╕рдкрдЫрд┐ рд╕реНрддрдореНрднрдХреЛ рдирд╛рдо рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рдЙрджреНрдзрд░рдг рдЪрд┐рдиреНрд╣рд╣рд░реВрдорд╛ рдкрдирд┐ рд╕рдВрдХреЗрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рдПрдХ рдЙрджрд╛рд╣рд░рдг df['col_name']), рд╡рд╛ рдЕрд╡рдзрд┐ рдкрдЫрд┐ рдЙрджреНрдзрд░рдг рдмрд┐рдирд╛ (рдПрдХ рдЙрджрд╛рд╣рд░рдг df.col_name).

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдзреЗрд░реИ рд╕рд░реНрддрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рд╕реНрдерд╛ рдХреЛрд╖реНрдардХрд╣рд░реВрдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫред рддрд╛рд░реНрдХрд┐рдХ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рдЕрдкрд░реЗрдЯрд░рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХрд╛ рдЫрдиреН & ╨╕ |.

Python рдорд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рддрд╛рд░: pandas

# ╨д╨╕╨╗╤М╤В╤А╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║ ╤В╨░╨▒╨╗╨╕╤Ж╤Л
### ╤Д╨╕╨╗╤М╤В╤А╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║ ╨┐╨╛ ╨╛╨┤╨╜╨╛╨╝╤Г ╤Г╤Б╨╗╨╛╨▓╨╕╤О
ga_nov[ ga_nov['source'] == "google" ]
### ╤Д╨╕╨╗╤М╤В╤А ╨┐╨╛ ╨┤╨▓╤Г╨╝ ╤Г╤Б╨╗╨╛╨▓╨╕╤П╨╝ ╤Б╨╛╨╡╨┤╨╕╨╜╤С╨╜╨╜╤Л╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╝ ╨╕
ga_nov[(ga_nov['source'] == "google") & (ga_nov['sessions'] >= 10)]
### ╤Д╨╕╨╗╤М╤В╤А ╨┐╨╛ ╨┤╨▓╤Г╨╝ ╤Г╤Б╨╗╨╛╨▓╨╕╤П╨╝ ╤Б╨╛╨╡╨┤╨╕╨╜╤С╨╜╨╜╤Л╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╝ ╨╕╨╗╨╕
ga_nov[(ga_nov['source'] == "google") | (ga_nov['sessions'] >= 10)]

рдбреЗрдЯрд╛рдХреЛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХрддреНрд░реАрдХрд░рдг

рдбрд╛рдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╕рдореВрд╣ рд░ рдПрдХреАрдХрд░рдг рд╣реЛред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдпреА рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╣рд╛рдореАрд▓реЗ рд╕рдореАрдХреНрд╖рд╛ рдЧрд░реНрдиреЗ рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдорд╛ рдЫрд░рд┐рдПрдХреЛ рдЫред

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рд▓рд┐рдиреЗрдЫреМрдВ рдЯрд╛рдЗрдЯреИрдирд┐рдХ, рд░ рдХреЗрдмрд┐рди рд╡рд░реНрдЧрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдЯрд┐рдХрдЯрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рдФрд╕рдд рд▓рд╛рдЧрдд рдЧрдгрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

R рдорд╛ рдбреЗрдЯрд╛рдХреЛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХрддреНрд░реАрдХрд░рдг: tidyverse, dplyr

╨Т dplyr рдкреНрд░рдХрд╛рд░реНрдп рд╕рдореВрд╣реАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ group_by(), рд░ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреА summarise()ред рд╡рд╛рд╕реНрддрдмрдорд╛, dplyr рддреНрдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдкрд░рд┐рд╡рд╛рд░ рдЫ summarise_*(), рддрд░ рдпрд╕ рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдзрд╛рд░рднреВрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБ рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рддреНрдпрд╕реНрддреЛ рдЬрдВрдЧрд▓рдорд╛ рдЬрд╛рдиреЗрдЫреИрдиреМрдВред

рдЖрдзрд╛рд░рднреВрдд рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛рд░реНрдпрд╣рд░реВ:

  • sum() - рдпреЛрдЧрдлрд▓
  • min() / max() - рдиреНрдпреВрдирддрдо рд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп
  • mean() - рдФрд╕рдд
  • median() - рдордзреНрдп
  • length() - рдорд╛рддреНрд░рд╛

R: dplyr рдорд╛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХрддреНрд░реАрдХрд░рдг

## dplyr
### ╨│╤А╤Г╨┐╨┐╨╕╤А╨╛╨▓╨║╨░ ╨╕ ╨░╨│╤А╨╡╨│╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║
group_by(titanic, Pclass) %>%
  summarise(passangers = length(PassengerId),
            avg_price  = mean(Fare))

рдХрд╛рд░реНрдп рдЧрд░реНрди group_by() рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рддрд╛рд▓рд┐рдХрд╛ рдкрд╛рд░ рдЧрд░реНрдпреМрдВ рдЯрд╛рдЗрдЯреИрдирд┐рдХ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдХреНрд╖реЗрддреНрд░ рд╕рдВрдХреЗрдд рдЧрд░реЗ Pclass, рдЬрд╕рджреНрд╡рд╛рд░рд╛ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рддрд╛рд▓рд┐рдХрд╛ рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реНрдиреЗрдЫреМрдВред рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдкрд░рд┐рдгрд╛рдо %>% рд╕рдорд╛рд░реЛрд╣рдорд╛ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд░рд┐рдд рдЧрд░рд┐рдпреЛ summarise(), рд░ рдердк реи рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдердкрд┐рдпреЛ: рдпрд╛рддреНрд░реБрд╣рд░реВ ╨╕ рдФрд╕рдд_рдореВрд▓реНрдпред рдкрд╣рд┐рд▓реЛрдорд╛, рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ length() рдЯрд┐рдХрдЯ рд╕рдВрдЦреНрдпрд╛ рдЧрдгрдирд╛, рд░ рджреЛрд╕реНрд░реЛ рд╕рдорд╛рд░реЛрд╣ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ mean() рдФрд╕рдд рдЯрд┐рдХрдЯ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рднрдпреЛред

R: data.table рдорд╛ рдбреЗрдЯрд╛рдХреЛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХрддреНрд░реАрдХрд░рдг

╨Т data.table рддрд░реНрдХ рдПрдХреАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ j рдЬреЛ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдорд╛ рджреЛрд╕реНрд░реЛ рд╕реНрдерд╛рди рдЫ, рд░ рд╕рдореВрд╣реАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреА by рд╡рд╛ keybyрдЬреБрди рддреЗрд╕реНрд░реЛ рд╕реНрдерд╛рдирдорд╛ рдЫред

рдпрд╕ рдорд╛рдорд▓рд╛ рдорд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛рд░реНрдпрд╣рд░реБ рдХреЛ рд╕реВрдЪреА рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╕рдорд╛рди рдЫ dplyr, рдХрд┐рдирднрдиреЗ рдпреА рдЖрдзрд╛рд░рднреВрдд рдЖрд░ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рд╣реБрдиреНред

R: data.table рдорд╛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХрддреНрд░реАрдХрд░рдг

## data.table
### ╤Д╨╕╨╗╤М╤В╤А╨░╤Ж╨╕╤П ╤Б╤В╤А╨╛╨║ ╨┐╨╛ ╨╛╨┤╨╜╨╛╨╝╤Г ╤Г╤Б╨╗╨╛╨▓╨╕╤О
titanic[, .(passangers = length(PassengerId),
            avg_price  = mean(Fare)),
        by = Pclass]

рдкрд╛рдЗрдердирдорд╛ рдбреЗрдЯрд╛рдХреЛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХрддреНрд░реАрдХрд░рдг: рдкрд╛рдгреНрдбрд╛

рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реНрджреИ pandas рдЬрд╕реНрддреИ dplyr, рддрд░ рдПрдХрддреНрд░реАрдХрд░рдг рд╕рдорд╛рди рдЫреИрди dplyr рдорд╛ рдЫреИрди data.table.

рд╕рдореВрд╣ рдЧрд░реНрди, рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН groupby(), рдЬрд╕рдорд╛ рддрдкрд╛рдИрд▓реЗ рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╕рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд╕рдореВрд╣рдмрджреНрдз рдЧрд░рд┐рдиреЗрдЫред

рдПрдХреАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдИрдВ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ agg()рдЬрд╕рд▓реЗ рд╢рдмреНрджрдХреЛрд╢ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред рд╢рдмреНрджрдХреЛрд╢ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕реНрддрдореНрднрд╣рд░реВ рд╣реБрдиреН рдЬрд╕рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдПрдЧреНрд░реАрдЧреЗрд╕рди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ, рд░ рдорд╛рдирд╣рд░реВ рдПрдЧреНрд░реАрдЧреЗрд╕рди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдирд╛рдорд╣рд░реВ рд╣реБрдиреНред

рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛рд░реНрдпрд╣рд░реВ:

  • sum() - рдпреЛрдЧрдлрд▓
  • min() / max() - рдиреНрдпреВрдирддрдо рд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп
  • mean() - рдФрд╕рдд
  • median() - рдордзреНрдп
  • count() - рдорд╛рддреНрд░рд╛

рд╕рдорд╛рд░реЛрд╣ reset_index() рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдпреЛ рдиреЗрд╕реНрдЯреЗрдб рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ pandas рдбреЗрдЯрд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдкрдЫрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рддред

рдкреНрд░рддреАрдХ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрд░реНрдХреЛ рд▓рд╛рдЗрдирдорд╛ рд╕рд╛рд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

Python рдорд╛ рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХреАрдХрд░рдг: рдкрд╛рдгреНрдбрд╛

# ╨│╤А╤Г╨┐╨┐╨╕╤А╨╛╨▓╨║╨░ ╨╕ ╨░╨│╤А╨╡╨│╨░╤Ж╨╕╤П ╨┤╨░╨╜╨╜╤Л╤Е
titanic.groupby(["Pclass"]).
    agg({'PassengerId': 'count', 'Fare': 'mean'}).
        reset_index()

рдЯреЗрдмрд▓рд╣рд░реВрдХреЛ рдард╛рдбреЛ рдЬреЛрдб

рдПрдЙрдЯрд╛ рдЕрдкрд░реЗрд╕рди рдЬрд╕рдорд╛ рддрдкрд╛рдЗрдБ рдПрдЙрдЯреИ рд╕рдВрд░рдЪрдирд╛рдХреЛ рджреБрдИ рд╡рд╛ рдмрдвреА рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рд╛рдореЗрд▓ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рд╣рд╛рдореАрд▓реЗ рд▓реЛрдб рдЧрд░реЗрдХреЛ рдбреЗрдЯрд╛рдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН ga_nov ╨╕ ga_decред рдпреА рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рдВрд░рдЪрдирд╛рдорд╛ рд╕рдорд╛рди рдЫрдиреН, рдЕрд░реНрдерд╛рддреНред рдЙрд╕реНрддреИ рд╕реНрддрдореНрднрд╣рд░реВ рдЫрдиреН, рд░ рдпреА рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЫрдиреНред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдпреЛ рдиреЛрднреЗрдореНрдмрд░ рд░ рдбрд┐рд╕реЗрдореНрдмрд░ рдорд╣рд┐рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЧреБрдЧрд▓ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕рдмрд╛рдЯ рдЕрдкрд▓реЛрдб рд╣реЛ, рдпрд╕ рдЦрдгреНрдбрдорд╛ рд╣рд╛рдореА рдпреЛ рдбреЗрдЯрд╛рд▓рд╛рдИ рдПрдЙрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдЬреЛрдбреНрдиреЗрдЫреМрдВред

рдард╛рдбреЛ рд░реВрдкрдорд╛ R рдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬреЛрдбреНрджреИ: tidyverse, dplyr

╨Т dplyr рддрдкрд╛рдИрдВ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ 2 рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ bind_rows(), рдпрд╕рдХреЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрджреИред

R рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ: dplyr

# ╨Т╨╡╤А╤В╨╕╨║╨░╨╗╤М╨╜╨╛╨╡ ╨╛╨▒╤К╨╡╨┤╨╕╨╜╨╡╨╜╨╕╨╡ ╤В╨░╨▒╨╗╨╕╤Ж
## dplyr
bind_rows(ga_nov, ga_dec)

R: data.table рдорд╛ рдард╛рдбреЛ рд░реВрдкрдорд╛ рдЬреЛрдбрд┐рдиреЗ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ

рдпреЛ рдкрдирд┐ рдХреЗрд╣рд┐ рдЬрдЯрд┐рд▓ рдЫреИрди, рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ rbind().

R рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ: data.table

## data.table
rbind(ga_nov, ga_dec)

Python: pandas рдорд╛ рдард╛рдбреЛ рд░реВрдкрдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрдиреЗ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ

╨Т pandas рдкреНрд░рдХрд╛рд░реНрдп рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬреЛрдбреНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ concat(), рдЬрд╕рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рдлреНрд░реЗрдорд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

Python рдорд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рддрд╛рд░: pandas

# ╨▓╨╡╤А╤В╨╕╨║╨░╨╗╤М╨╜╨╛╨╡ ╨╛╨▒╤К╨╡╨┤╨╕╨╜╨╡╨╜╨╕╨╡ ╤В╨░╨▒╨╗╨╕╤Ж
pd.concat([ga_nov, ga_dec])

рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рддреЗрд░реНрд╕реЛ рдЬреЛрдб

рдПрдЙрдЯрд╛ рдЕрдкрд░реЗрд╢рди рдЬрд╕рдорд╛ рджреЛрд╕реНрд░реЛрдмрд╛рдЯ рд╕реНрддрдореНрднрд╣рд░реВ рдХреБрдЮреНрдЬреАрджреНрд╡рд╛рд░рд╛ рдкрд╣рд┐рд▓реЛ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдердкрд┐рдиреНрдЫрдиреНред рддрдереНрдпрд╛рдЩреНрдХ рддрд╛рд▓рд┐рдХрд╛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдмрд┐рдХреНрд░реА рдбреЗрдЯрд╛рд╕рд╣рд┐рддрдХреЛ рддрд╛рд▓рд┐рдХрд╛) рдХреЗрд╣реА рд╕рдиреНрджрд░реНрдн рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЙрддреНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрдд) рд▓рд╛рдИ рд╕рдореГрджреНрдз рдЧрд░реНрджрд╛ рдпреЛ рдкреНрд░рд╛рдпрдГ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЬреЛрдбрд╣рд░реВ рдЫрдиреН:

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдкрд╣рд┐рд▓реЗ рд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдЯрд╛рдЗрдЯреИрдирд┐рдХ рд╣рд╛рдореАрд╕рдБрдЧ рд╕реНрддрдореНрдн рдЫ рд╕реЗрдХреНрд╕, рдЬреБрди рдпрд╛рддреНрд░реБрдХреЛ рд▓рд┐рдЩреНрдЧ рдХреЛрдбрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ:

рез - рдорд╣рд┐рд▓рд╛
2 - рдкреБрд░реБрд╖

рд╕рд╛рдереИ, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛ - рд╕рдиреНрджрд░реНрдн рдкреБрд╕реНрддрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ рд▓рд┐рдЩреНрдЧред рдпрд╛рддреНрд░реБрд╣рд░реВрдХреЛ рд▓рд┐рдЩреНрдЧрдорд╛ рдбрд╛рдЯрд╛рдХреЛ рдердк рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдмрд╛рдЯ рд▓рд┐рдЩреНрдЧрдХреЛ рдирд╛рдо рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд▓рд┐рдЩреНрдЧ рдЯреЗрдмрд▓рдорд╛ рдЯрд╛рдЗрдЯреИрдирд┐рдХ.

рддреЗрд░реНрд╕реЛ рддрд╛рд▓рд┐рдХрд╛ R рдорд╛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН: tidyverse, dplyr

╨Т dplyr рддреЗрд░реНрд╕реЛ рдЬреЛрдбреНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдкрд░рд┐рд╡рд╛рд░ рдЫ:

  • inner_join()
  • left_join()
  • right_join()
  • full_join()
  • semi_join()
  • nest_join()
  • anti_join()

рдореЗрд░реЛ рдЕрднреНрдпрд╛рд╕рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ left_join().

рдкрд╣рд┐рд▓реЛ рджреБрдИ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛, рдорд╛рдерд┐ рд╕реВрдЪреАрдмрджреНрдз рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рд╕рд╛рдореЗрд▓ рд╣реБрди рджреБрдИрд╡рдЯрд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд▓рд┐рдиреНрдЫрдиреН, рд░ рддреЗрд╕реНрд░реЛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ by рддрдкрд╛рдИрдВрд▓реЗ рд╕рд╛рдореЗрд▓ рд╣реБрди рд╕реНрддрдореНрднрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рддреЗрд░реНрд╕реЛ рддрд╛рд▓рд┐рдХрд╛ R: dplyr рдорд╛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН

# ╨╛╨▒╤К╨╡╨┤╨╕╨╜╤П╨╡╨╝ ╤В╨░╨▒╨╗╨╕╤Ж╤Л
left_join(titanic, gender,
          by = c("Sex" = "id"))

R: data.table рдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рддреЗрд░реНрд╕реЛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН

╨Т data.table рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреБрдЮреНрдЬреАрджреНрд╡рд╛рд░рд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬреЛрдбреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ merge().

data.table рдорд╛ рдорд░реНрдЬ() рдкреНрд░рдХрд╛рд░реНрдп рдЧрд░реНрди рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрд╣рд░реВ

  • x, y тАФ рд╕рд╛рдореЗрд▓ рд╣реБрдирдХрд╛ рд▓рд╛рдЧрд┐ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ
  • рджреНрд╡рд╛рд░рд╛ тАФ рд╕реНрддрдореНрдн рдЬреЛ рд╕рд╛рдореЗрд▓ рд╣реБрди рдХреБрдЮреНрдЬреА рд╣реЛ рдпрджрд┐ рдпрд╕рдХреЛ рджреБрдмреИ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдПрдЙрдЯреИ рдирд╛рдо рдЫ
  • by.x, by.y тАФ рдорд░реНрдЬ рдЧрд░рд┐рдиреЗ рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рдирд╛рдо, рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдлрд░рдХ рдирд╛рдорд╣рд░реВ рдЫрдиреН рднрдиреЗ
  • all, all.x, all.y тАФ Join type, all рд▓реЗ рджреБрдмреИ рдЯреЗрдмрд▓рдмрд╛рдЯ рд╕рдмреИ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫ, all.x рд▓реЗрдлреНрдЯ JOIN рд╕рдЮреНрдЪрд╛рд▓рдирд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ (рдкрд╣рд┐рд▓реЛ рддрд╛рд▓рд┐рдХрд╛рдХрд╛ рд╕рдмреИ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдЫреЛрдбреНрдиреЗрдЫ), all.y тАФ рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рджрд╛рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдЕрдкрд░реЗрд╢рди (рджреЛрд╕реНрд░реЛ рддрд╛рд▓рд┐рдХрд╛рдХреЛ рд╕рдмреИ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдЫреЛрдбреНрдиреЗрдЫ)ред

R: data.table рдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рддреЗрд░реНрд╕реЛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН

# ╨╛╨▒╤К╨╡╨┤╨╕╨╜╤П╨╡╨╝ ╤В╨░╨▒╨╗╨╕╤Ж╤Л
merge(titanic, gender, by.x = "Sex", by.y = "id", all.x = T)

рддреЗрд░реНрд╕реЛ рддрд╛рд▓рд┐рдХрд╛ Python: pandas рдорд╛ рдЬреЛрдбрд┐рдиреНрдЫ

рд╕рд╛рдереИ рдорд╛ data.tableрднрд┐рддреНрд░ pandas рдкреНрд░рдХрд╛рд░реНрдп рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬреЛрдбреНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ merge().

рдкрд╛рдгреНрдбрд╛рдорд╛ рдорд░реНрдЬ() рдкреНрд░рдХрд╛рд░реНрдпрдХрд╛ рддрд░реНрдХрд╣рд░реВ

  • рдХрд╕рд░реА - рдЬрдбрд╛рди рдкреНрд░рдХрд╛рд░: рдмрд╛рдБрдпрд╛, рджрд╛рдпрд╛рдБ, рдмрд╛рд╣рд┐рд░реА, рднрд┐рддреНрд░реА
  • on тАФ рд╕реНрддрдореНрдн рдЬреБрди рдХреБрдЮреНрдЬреА рд╣реЛ рдпрджрд┐ рдпрд╕рдХреЛ рджреБрдмреИ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдПрдЙрдЯреИ рдирд╛рдо рдЫ
  • left_on, right_on тАФ рдХреБрдЮреНрдЬреА рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рдирд╛рдорд╣рд░реВ, рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдлрд░рдХ рдирд╛рдорд╣рд░реВ рдЫрдиреН

рддреЗрд░реНрд╕реЛ рддрд╛рд▓рд┐рдХрд╛ Python: pandas рдорд╛ рдЬреЛрдбрд┐рдиреНрдЫ

# ╨╛╨▒╤К╨╡╨┤╨╕╨╜╤П╨╡╨╝ ╨┐╨╛ ╨║╨╗╤О╤З╤Г
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")

рдЖрдзрд╛рд░рднреВрдд рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрддрдореНрднрд╣рд░реВ

рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдПрдЧреНрд░реАрдЧреЗрд╢рди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЕрд░реНрдердорд╛ рд╕рдорд╛рди рдЫрдиреН, рд░ рдкреНрд░рд╛рдпрдГ рдбрд╛рдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддрд░ рдПрдЧреНрд░реАрдЧреЗрд╕рди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╡рд┐рдкрд░реАрдд, рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреЗ рдбрд╛рдЯрд╛рдлреНрд░реЗрдордХреЛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИрдиред

рдбреЗрдЯрд╛ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдХреБрди рднрд╛рд╖рд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗ - R рд╡рд╛ рдкрд╛рдЗрдерди? рджреБрдмреИ! рдкрд╛рдгреНрдбрд╛рдмрд╛рдЯ tidyverse рд░ data.table рд░ рдкрдЫрд╛рдбрд┐ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрджреИ

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рдЖрдЧрдорди рдбреЗрдЯрд╛рдлреНрд░реЗрдорд▓рд╛рдИ рдХреЗрд╣реА рдорд╛рдкрджрдгреНрдб рдЕрдиреБрд╕рд╛рд░ рднрд╛рдЧрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдЫреМрдВ, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдХреНрд╖реЗрддреНрд░, рд╡рд╛ рдзреЗрд░реИ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдорд╛рди рджреНрд╡рд╛рд░рд╛ред рд░ рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХ рд╕рдЮреНрдЭреНрдпрд╛рд▓рдорд╛ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдЫреМрдВред рдпреА рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдирддрд┐рдЬрд╛ рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдирдорд╛ рдлрд░реНрдХрд╛рдЗрдиреЗрдЫ, рдЕрд░реНрдерд╛рддреНред рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВрдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реАред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрд╛рд▓рд┐рдХрд╛ рд▓рд┐рдиреБрд╣реЛрд╕реН рдЯрд╛рдЗрдЯреИрдирд┐рдХред рд╣рд╛рдореА рдЧрдгрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдХрдЯрдХреЛ рд▓рд╛рдЧрдд рдХрддрд┐ рдкреНрд░рддрд┐рд╢рдд рдпрд╕рдХреЛ рдХреНрдпрд╛рдмрд┐рди рд╡рд░реНрдЧ рднрд┐рддреНрд░ рдерд┐рдпреЛред

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдирдорд╛ рд╣рд╛рд▓рдХреЛ рдХреЗрдмрд┐рди рд╡рд░реНрдЧрдХреЛ рдЯрд┐рдХрдЯрдХреЛ рдХреБрд▓ рд▓рд╛рдЧрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬреБрди рдпрд╕ рд▓рд╛рдЗрдирдХреЛ рдЯрд┐рдХрдЯ рд╣реЛ, рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдХрдЯрдХреЛ рдореВрд▓реНрдпрд▓рд╛рдИ рдПрдЙрдЯреИ рдХреНрдпрд╛рдмрд┐рди рдХрдХреНрд╖рд╛рдХреЛ рд╕рдмреИ рдЯрд┐рдХрдЯрд╣рд░реВрдХреЛ рдХреБрд▓ рд▓рд╛рдЧрддрд▓реЗ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред ред

R рдорд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ: tidyverse, dplyr

рдкрдЩреНрдХреНрддрд┐ рд╕рдореВрд╣реАрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдирдпрд╛рдБ рд╕реНрддрдореНрднрд╣рд░реВ рдердкреНрди, рдорд╛ dplyr рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ mutate().

рддрдкрд╛рдИрдВрд▓реЗ рдлрд┐рд▓реНрдб рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реЗрд░ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Pclass рд░ рдлрд┐рд▓реНрдбрд▓рд╛рдИ рдирдпрд╛рдБ рд╕реНрддрдореНрднрдорд╛ рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрджреИ рднрд╛рдбрд╛ред рдЕрд░реНрдХреЛ, рддрд╛рд▓рд┐рдХрд╛рд▓рд╛рдИ рдЕрдирдЧреНрд░реБрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдлрд┐рд▓реНрдб рдорд╛рдирд╣рд░реВ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рднрд╛рдбрд╛ рдЕрдШрд┐рд▓реНрд▓реЛ рдЪрд░рдгрдорд╛ рдХреЗ рднрдпреЛред

R: dplyr рдорд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ

group_by(titanic, Pclass) %>%
  mutate(Pclass_cost = sum(Fare)) %>%
  ungroup() %>%
  mutate(ticket_fare_rate = Fare / Pclass_cost)

R: data.table рдорд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ

рд╕рдорд╛рдзрд╛рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдорд╛ рдЬрд╕реНрддреИ рдиреИ рд░рд╣рдиреНрдЫ dplyr, рд╣рд╛рдореАрд▓реЗ рддрд╛рд▓рд┐рдХрд╛рд▓рд╛рдИ рд╡рд┐рдиреНрдбреЛрдорд╛ рдлрд┐рд▓реНрдбрджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ Pclassред рдирдпрд╛рдБ рд╕реНрддрдореНрднрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдореВрд╣рдХреЛ рд▓рд╛рдЧрд┐ рд░рдХрдо рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдПрдЙрдЯрд╛ рд╕реНрддрдореНрдн рдердкреНрдиреБрд╣реЛрд╕реН рдЬрд╕рдорд╛ рд╣рд╛рдореА рдпрд╕рдХреЛ рд╕рдореВрд╣рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдХрдЯрдХреЛ рд▓рд╛рдЧрддрдХреЛ рдЕрдВрд╢ рдЧрдгрдирд╛ рдЧрд░реНрдЫреМрдВред

рдирдпрд╛рдБ рд╕реНрддрдореНрднрд╣рд░реВ рдердкреНрди data.table рдЕрдкрд░реЗрдЯрд░ рдЙрдкрд╕реНрдерд┐рдд :=ред рддрд▓ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ data.table

R: data.table рдорд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ

titanic[,c("Pclass_cost","ticket_fare_rate") := .(sum(Fare), Fare / Pclass_cost), 
        by = Pclass]

рдкрд╛рдЗрдердирдорд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ: рдкрд╛рдиреНрдбрд╛

рдирдпрд╛рдБ рд╕реНрддрдореНрдн рдердкреНрдиреЗ рдПрдЙрдЯрд╛ рддрд░рд┐рдХрд╛ pandas - рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН assign()ред рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рд╕рдореВрд╣рдмрджреНрдз рдирдЧрд░реА рдХреЗрдмрд┐рди рд╡рд░реНрдЧрджреНрд╡рд╛рд░рд╛ рдЯрд┐рдХрдЯрд╣рд░реВрдХреЛ рдореВрд▓реНрдп рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди, рд╣рд╛рдореА рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ transform().

рддрд▓ рдПрдЙрдЯрд╛ рд╕рдорд╛рдзрд╛рдирдХреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ рдЬрд╕рдорд╛ рд╣рд╛рдореА рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдердкреНрдЫреМрдВ рдЯрд╛рдЗрдЯреИрдирд┐рдХ рдЙрд╣реА 2 рд╕реНрддрдореНрднрд╣рд░реВред

рдкрд╛рдЗрдердирдорд╛ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ: рдкрд╛рдиреНрдбрд╛

titanic.assign(Pclass_cost      =  titanic.groupby('Pclass').Fare.transform(sum),
               ticket_fare_rate = lambda x: x['Fare'] / x['Pclass_cost'])

рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрддреНрд░рд╛рдЪрд╛рд░ рддрд╛рд▓рд┐рдХрд╛

рддрд▓ рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдЪрд╛рд░ рдЧрд░реЗрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдорд╛ рдбреЗрдЯрд╛рдХреЛ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рд╡рд┐рдзрд┐рд╣рд░реВ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдЫред

рд╡рд┐рд╡рд░рдг
рд╡реНрдпрд╡рд╕реНрдерд┐рдд
рдбрд╛рдЯрд╛.рдЯреЗрдмрд▓
рдкрд╛рдгреНрдбрд╛

рдбрд╛рдЯрд╛ рд▓реЛрдб рдЧрд░реНрджреИ
vroom()/ readr::read_csv() / readr::read_tsv()
fread()
read_csv()

рдбрд╛рдЯрд╛рдлреНрд░реЗрдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
tibble()
data.table()
dict() + from_dict()

рд╕реНрддрдореНрднрд╣рд░реВ рдЪрдпрди рдЧрд░реНрджреИ
select()
рддрд░реНрдХ j, рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдорд╛ рджреЛрд╕реНрд░реЛ рд╕реНрдерд╛рди
рд╣рд╛рдореА рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкрд╛рд╕ рдЧрд░реНрдЫреМрдВ / drop() / filter() / select_dtypes()

рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджреИ
filter()
рддрд░реНрдХ i, рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рди
рд╣рд╛рдореА рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХрдорд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрдЫреМрдВ / filter()

рд╕рдореВрд╣реАрдХрд░рдг рд░ рдПрдХреАрдХрд░рдг
group_by() + summarise()
рддрд░реНрдХрд╣рд░реВ j + by
groupby() + agg()

рдЯреЗрдмрд▓рд╣рд░реВрдХреЛ рдард╛рдбреЛ рд╕рдВрдШ (UNION)
bind_rows()
rbind()
concat()

рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рддреЗрд░реНрд╕реЛ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН (JOIN)
left_join() / *_join()
merge()
merge()

рдЖрдзрд╛рд░рднреВрдд рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрддрдореНрднрд╣рд░реВ рдердкреНрджреИ
group_by() + mutate()
рддрд░реНрдХ j рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ := + рддрд░реНрдХ by
transform() + assign()

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рд╕рд╛рдпрдж рд▓реЗрдЦрдорд╛ рдореИрд▓реЗ рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдЗрд╖реНрдЯрддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реЗрди, рддреНрдпрд╕реИрд▓реЗ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдореЗрд░рд╛ рдЧрд▓реНрддреАрд╣рд░реВ рд╕рдЪреНрдпрд╛рдЙрдиреБрднрдпреЛ рднрдиреЗ, рд╡рд╛ рдХреЗрд╡рд▓ R / рдкрд╛рдЗрдердирдорд╛ рдбрд╛рдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрдиреНрдп рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрд╕рдБрдЧ рд▓реЗрдЦрдорд╛ рджрд┐рдЗрдПрдХрд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдкреВрд░реНрддрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН рднрдиреЗ рдо рдЦреБрд╕реА рд╣реБрдиреЗрдЫреБред

рдореИрд▓реЗ рдорд╛рдерд┐ рд▓реЗрдЦреЗрдЭреИрдВ, рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдХреБрди рднрд╛рд╖рд╛ рд░рд╛рдореНрд░реЛ рдЫ рднрдиреЗрд░ рдХрд╕реИрдХреЛ рд╡рд┐рдЪрд╛рд░ рдереЛрдкрд╛рдЙрдиреЗ рд╣реЛрдЗрди, рддрд░ рджреБрдмреИ рднрд╛рд╖рд╛рд╣рд░реВ рд╕рд┐рдХреНрдиреЗ рдЕрд╡рд╕рд░рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рд╡рд╛ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рддрд┐рдиреАрд╣рд░реВ рдмреАрдЪ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрдиреБ рдерд┐рдпреЛред

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд▓реЗрдЦ рдордирдкрд░реНрдпреЛ рднрдиреЗ, рдо рдореЗрд░реЛ рдирдпрд╛рдБ рд╕рджрд╕реНрдпрд╣рд░реВ рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рд╣реБрдиреЗрдЫреБ YouTube ╨╕ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдирд▓рд╣рд░реВред

рдкреЛрд▓

рддрд▓рдХрд╛ рдордзреНрдпреЗ рдХреБрди рдкреНрдпрд╛рдХреЗрдЬ рддрдкрд╛рдИрд▓реЗ рдЖрдлреНрдиреЛ рдХрд╛рдордорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?

рдХрдореЗрдиреНрдЯрдорд╛ рддрдкрд╛рдИрд▓реЗ рдЖрдлреНрдиреЛ рд░реЛрдЬрд╛рдЗрдХреЛ рдХрд╛рд░рдг рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рд╕рд╛рдЗрди рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реНрдХреГрдкрдпрд╛

рддрдкрд╛рдЗрдБ рдХреБрди рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ (рддрдкрд╛рдИрдВ рдзреЗрд░реИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ)

  • 45,2%рд╡реНрдпрд╡рд╕реНрдерд┐рдд 19

  • 33,3%data.table14

  • 54,8%рдкрд╛рдгреНрдбрд╛ резрез

42 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред 9 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди