рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

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

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

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

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

рдЖрдореНрд╣реА рдкрд╛рдпрдерди рдЖрдгрд┐ рдЖрд░ рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдЪрд╛ рд╕рдВрдкреВрд░реНрдг рдорд╛рд░реНрдЧ рддреЗ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рддреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╡рд┐рдВрдбреЛ рдлрдВрдХреНрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯрдкреНрдкреНрдпрд╛рдЯрдкреНрдкреНрдпрд╛рдиреЗ рдкреБрдвреЗ рдЬрд╛рдК.

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

рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдкреЕрдХреЗрдЬрдкреИрдХреА рдПрдХрд╛рдордзреНрдпреЗ рдХрд╛рд╣реА рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рд╣реЗ рдЖрдкрдг рд╡рд┐рд╕рд░рд▓рд╛ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣рд╛ рд▓реЗрдЦ рдлрд╕рд╡рдгреВрдХ рдкрддреНрд░рдХ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди 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. рдЯреЗрдмрд▓реНрд╕рдЪреЗ рдХреНрд╖реИрддрд┐рдЬ рдЬреЛрдбрдгреЗ (рдЬреЙрдЗрди)
  11. рдореВрд▓рднреВрдд рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпреЗ рдЖрдгрд┐ рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реЗ рд╕реНрддрдВрдн
  12. R рдЖрдгрд┐ Python рдордзреАрд▓ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрджреНрдзрддреАрдВрдордзреАрд▓ рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╛рд░рдгреА
  13. рдирд┐рд╖реНрдХрд░реНрд╖
  14. рддреБрдореНрд╣реА рдХреЛрдгрддреЗ рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░рддрд╛ рдпрд╛рдмрджреНрджрд▓ рдПрдХ рд▓рд╣рд╛рди рд╕рд░реНрд╡реЗрдХреНрд╖рдг

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

R рдЖрдгрд┐ Python рдордзреАрд▓ рдореБрдЦреНрдп рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдлрд░рдХ

рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдкрд╛рдпрдерди рд╡рд░реВрди R рд╡рд░ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЙрд▓рдЯ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореА рдХрд╛рд╣реА рдореБрдЦреНрдп рдореБрджреНрджреЗ рджреЗрдИрди рдЬреНрдпрд╛рдХрдбреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд▓рдХреНрд╖ рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдкреЕрдХреЗрдЬ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ

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

рдкрд╛рдпрдердирдордзреНрдпреЗ, рддреНрдпрд╛рдЙрд▓рдЯ, рдкреЕрдХреЗрдЬрдЪреЗ рдирд╛рд╡ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдХреЙрд▓ рдХрд░рдгреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдорд╛рдирд▓реЗ рдЬрд╛рддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреЗ рдкреЕрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рд▓рд╛ рд╕рд╣рд╕рд╛ рд▓рд╣рд╛рди рдирд╛рд╡ рджрд┐рд▓реЗ рдЬрд╛рддреЗ, рдЙрджрд╛. pandas рд╕рд╣рд╕рд╛ рдЯреЛрдкрдгрдирд╛рд╡ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ pd. рдкреЕрдХреЗрдЬ рдлрдВрдХреНрд╢рди рдбреЙрдЯрджреНрд╡рд╛рд░реЗ рдНрдХреНрд╕реЗрд╕ рдХреЗрд▓реЗ рдЬрд╛рддреЗ package_name.function_name().

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

рдЖрд░ рдордзреНрдпреЗ, рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдореВрд▓реНрдп рдирд┐рдпреБрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд╛рдг рд╡рд╛рдкрд░рдгреЗ рд╕рд╛рдорд╛рдиреНрдп рдЖрд╣реЗ. obj_name <- value, рдЬрд░реА рд╕рд┐рдВрдЧрд▓ рдЗрдХреНрд╡рд▓ рдЪрд┐рдиреНрд╣рд╛рд╕ рдЕрдиреБрдорддреА рдЕрд╕рд▓реА рддрд░реА, R рдордзреАрд▓ рд╕рд┐рдВрдЧрд▓ рдЗрдХреНрд╡рд▓ рдЪрд┐рдиреНрд╣ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рдлрдВрдХреНрд╢рди рд╡рд┐рддрд░реНрдХрд╛рдВрдирд╛ рдореВрд▓реНрдпреЗ рдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

рдкрд╛рдпрдердирдордзреНрдпреЗ, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗрд╡рд│ рдПрдХрд╛рдЪ рд╕рдорд╛рди рдЪрд┐рдиреНрд╣рд╛рд╕рд╣ рдХреЗрд▓реЗ рдЬрд╛рддреЗ obj_name = value.

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

рдпреЗрдереЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рдгреАрдп рдлрд░рдХ рдЖрд╣реЗрдд. R рдордзреНрдпреЗ, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдПрдХрдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдореА рд╢реНрд░реЗрдгреАрддреАрд▓ рд╕рд░реНрд╡ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддрд╛рдд,

рдкрд╛рдпрдердирдордзреНрдпреЗ, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╢реВрдиреНрдпрд╛рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓рд╛ рд╢реЗрд╡рдЯрдЪрд╛ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА. рддреНрдпрд╛рдореБрд│реЗ рдбрд┐рдЭрд╛рдЗрди x[i:j] Python рдордзреНрдпреЗ j рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

рдЖрд░ рдиреЛрдЯреЗрд╢рдирдордзреНрдпреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдлрд░рдХ рдЖрд╣реЗрдд x[-1] рд╢реЗрд╡рдЯрдЪрд╛ рдШрдЯрдХ рд╕реЛрдбреВрди рд╡реЗрдХреНрдЯрд░рдЪреЗ рд╕рд░реНрд╡ рдШрдЯрдХ рдкрд░рдд рдХрд░реЗрд▓. Python рдордзреНрдпреЗ, рдПрдХ рд╕рдорд╛рди рдиреЛрдЯреЗрд╢рди рдлрдХреНрдд рд╢реЗрд╡рдЯрдЪрд╛ рдШрдЯрдХ рджреЗрдИрд▓.

рдкрджреНрдзрддреА рдЖрдгрд┐ OOP

рдЖрд░ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдиреЗ рдУрдУрдкреА рд▓рд╛рдЧреВ рдХрд░рддреЗ, рдореА рд▓реЗрдЦрд╛рдд рдпрд╛рдмрджреНрджрд▓ рд▓рд┐рд╣рд┐рд▓реЗ "рдЖрд░ рднрд╛рд╖реЗрдд OOP (рднрд╛рдЧ 1): S3 рд╡рд░реНрдЧ". рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЖрд░ рд╣реА рдХрд╛рд░реНрдпрд╢реАрд▓ рднрд╛рд╖рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рдлрдВрдХреНрд╢рдиреНрд╕рд╡рд░ рдмрдирд▓реЗрд▓реА рдЖрд╣реЗ. рдореНрд╣рдгреВрди, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХреНрд╕реЗрд▓ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА, рд╡рд░ рдЬрд╛ tydiverse рдкреЗрдХреНрд╖рд╛ рд╕реЛрдкреЗ рд╣реЛрдИрд▓ pandas. рд╣реЗ рдорд╛рдЭреЗ рд╡реНрдпрдХреНрддрд┐рдирд┐рд╖реНрда рдордд рдЕрд╕рд▓реЗ рддрд░реА.

рдереЛрдбрдХреНрдпрд╛рдд, рдЖрд░ рдордзреАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рдкрджреНрдзрддреА рдирд╛рд╣реАрдд (рдЬрд░ рдЖрдкрдг 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 <-.

рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдпрд╛ рдореЗрдорджреНрд╡рд╛рд░реЗ рд╢рдмреНрджрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЪрд╛рдВрдЧрд▓реЗ рдЪрд┐рддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ:
рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди 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(). рдкрд░рд┐рдгрд╛рдореА рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯрдордзреНрдпреЗ рдЬрддрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рд╣рд░рдХрдд .

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

R рдЖрдгрд┐ Python рдордзреАрд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рд╕рдорд╛рди рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдЪреА рдирд╛рд╡реЗ рднрд┐рдиреНрди рдЖрд╣реЗрдд.

рд╡рд░реНрдгрди
рдЖрд░ рдордзреНрдпреЗ рдирд╛рд╡
Python/pandas рдордзреНрдпреЗ рдирд╛рд╡

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

рдореВрд▓реНрдпрд╛рдВрдЪреА рдПрдХ-рдЖрдпрд╛рдореА рд╕реВрдЪреА
рд╡реЗрдХреНрдЯрд░
рдкрд╛рдВрдбрд╛рдордзреАрд▓ рдорд╛рд▓рд┐рдХрд╛ рдХрд┐рдВрд╡рд╛ рд╢реБрджреНрдз рдкрд╛рдпрдердирдордзреАрд▓ рд╕реВрдЪреА

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

рдЖрдореНрд╣реА рдЦрд╛рд▓реА рд╡рд╛рдХреНрдпрд░рдЪрдирд╛рдордзреАрд▓ рдЗрддрд░ рдХрд╛рд╣реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдлрд░рдХ рдкрд╛рд╣реВ.

рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдгрд╛рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреЕрдХреЗрдЬрдмрджреНрджрд▓ рдХрд╛рд╣реА рд╢рдмреНрдж

рдкреНрд░рдердо, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рд▓реЗрдЦрд╛рджрд░рдореНрдпрд╛рди рдЬреНрдпрд╛ рдкреЕрдХреЗрдЬреЗрд╕рд╢реА рдкрд░рд┐рдЪрд┐рдд рд╡реНрд╣рд╛рд▓ рддреНрдпрд╛рдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ рд╕рд╛рдВрдЧреЗрди.

рдиреАрдЯрдиреЗрдЯрдХрд╛

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

рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рдХреЛрд░рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдкреЕрдХреЗрдЬреЗрд╕ рдЕрд╕рддрд╛рдд: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. рдпрд╛рддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдкреЕрдХреЗрдЬ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде dplyr рдбреЗрдЯрд╛ рд╣рд╛рддрд╛рд│рдгреАрд╕рд╛рдареА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ, tidyr рдбреЗрдЯрд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕реНрд╡рд░реВрдкрд╛рдд рдЖрдгрдгреНрдпрд╛рд╕рд╛рдареА, stringr рд╕реНрдЯреНрд░рд┐рдВрдЧрд╕рд╣ рдХрд╛рдо рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ, рдЖрдгрд┐ ggplot2 рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди рд╕рд╛рдзрдирд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ.

рдлрд╛рдпрджрд╛ tidyverse рд╣реА рд╕рд╛рдзреЗрдкрдгрд╛ рдЖрдгрд┐ рд╡рд╛рдЪрдгреНрдпрд╛рд╕ рд╕реЛрдкреА рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЖрд╣реЗ, рдЬреА рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░реЗ SQL рдХреНрд╡реЗрд░реА рднрд╛рд╖реЗрд╕рд╛рд░рдЦреА рдЖрд╣реЗ.

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

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░рдЕрдзрд┐рдХреГрдд рд╡реЗрдмрд╕рд╛рдЗрдЯ: r-datatable.com

рджреНрд╡рд╛рд░реЗ data.table H2O.ai рдЪрд╛ рдореЕрдЯ рдбреЛрд▓ рдЖрд╣реЗ.

рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдХрд╛рд╢рди 2006 рдордзреНрдпреЗ рдЭрд╛рд▓реЗ.

рдкреЕрдХреЗрдЬ рд╕рд┐рдВрдЯреЕрдХреНрд╕ рдкреНрд░рдорд╛рдгреЗ рд╕реЛрдпреАрд╕реНрдХрд░ рдирд╛рд╣реА tidyverse рдЖрдгрд┐ рдЖрд░ рдордзреАрд▓ рдХреНрд▓рд╛рд╕рд┐рдХ рдбреЗрдЯрд╛рдлреНрд░реЗрдордЪреА рдЕрдзрд┐рдХ рдЖрдард╡рдг рдХрд░реВрди рджреЗрдгрд╛рд░реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрд╣реЗ.

рдпрд╛ рдкреЕрдХреЗрдЬрдордзреАрд▓ рд╕рд╛рд░рдгреАрд╕рд╣ рд╕рд░реНрд╡ рд╣рд╛рддрд╛рд│рдгреА рдЪреМрд░рд╕ рдХрдВрд╕рд╛рдд рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐ рдЬрд░ рддреБрдореНрд╣реА рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреЗрд▓реА рддрд░ data.table SQL рдордзреНрдпреЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдорд┐рд│рддреЗ: data.table[ WHERE, SELECT, GROUP BY ]

рдпрд╛ рдкреЕрдХреЗрдЬрдЪреА рддрд╛рдХрдж рдореНрд╣рдгрдЬреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрддреА.

рдкрд╛рдВрдбрд╛

рдЕрдзрд┐рдХреГрдд рд╡реЗрдмрд╕рд╛рдЗрдЯ: pandas.pydata.org рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

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

рджреНрд╡рд╛рд░реЗ pandas рдЕрдореЗрд░рд┐рдХрди рд╡реЗрд╕ рдореЕрдХрдХрд┐рдиреА рдЖрд╣реЗ.

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

рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЕрдХреЗрдЬреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ

рдпрд╛ рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реА рдкреЕрдХреЗрдЬреЗрд╕ рдореВрд▓рднреВрдд R рдЖрдгрд┐ Python рд╡рд┐рддрд░рдгрд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реАрдд. рдЬрд░реА рдПрдХ рд▓рд╣рд╛рди рдЪреЗрддрд╛рд╡рдгреА рдЖрд╣реЗ, рдЖрдкрдг рдЕреЕрдирд╛рдХреЛрдВрдбрд╛ рд╡рд┐рддрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдирдВрддрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ pandas рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА.

рдЖрд░ рдордзреНрдпреЗ рдкреЕрдХреЗрдЬреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ

рдЬрд░ рддреБрдореНрд╣реА рдХрд┐рдорд╛рди рдПрдХрджрд╛ RStudio рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдПрдиреНрд╡реНрд╣рд╛рдпрд░реНрдирдореЗрдВрдЯ рдЙрдШрдбрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рдХрджрд╛рдЪрд┐рдд рддреБрдореНрд╣рд╛рд▓рд╛ R рдордзреНрдпреЗ рдЖрд╡рд╢реНрдпрдХ рдкреЕрдХреЗрдЬ рдХрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рдд рдЕрд╕реЗрд▓. рдкреЕрдХреЗрдЬреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдорд╛рдирдХ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рд╛. install.packages() рдереЗрдЯ R рдордзреНрдпреЗрдЪ рдЪрд╛рд▓рд╡реВрди.

# ╤Г╤Б╤В╨░╨╜╨╛╨▓╨║╨░ ╨┐╨░╨║╨╡╤В╨╛╨▓
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

рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдд рдЖрд╣реЗ

рдбреЗрдЯрд╛ рдЦрдирди рд╣реА рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреАрд▓ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдкрд╛рдпрд░реА рдЖрд╣реЗ. Python рдЖрдгрд┐ R рджреЛрдиреНрд╣реА, рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрддреНрд░реЛрддрд╛рдВрдХрдбреВрди рдбреЗрдЯрд╛ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рд╕реНрддреГрдд рд╕рдВрдзреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд: рд╕реНрдерд╛рдирд┐рдХ рдлрд╛рдЗрд▓реНрд╕, рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реАрд▓ рдлрд╛рдЗрд▓реНрд╕, рд╡реЗрдмрд╕рд╛рдЗрдЯреНрд╕, рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреЗ рдбреЗрдЯрд╛рдмреЗрд╕.

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

рд╕рдВрдкреВрд░реНрдг рд▓реЗрдЦрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╡рд╛рдкрд░реВ:

  1. Google Analytics рд╡рд░реВрди рджреЛрди рдбрд╛рдЙрдирд▓реЛрдб.
  2. рдЯрд╛рдпрдЯреЕрдирд┐рдХ рдкреЕрд╕реЗрдВрдЬрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ.

рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рдЖрд╣реЗ GitHub csv рдЖрдгрд┐ tsv рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд. рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рдХреБрдареВрди рд╡рд┐рдирдВрддреА рдХрд░рдгрд╛рд░?

R рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдд рдЖрд╣реЗ: tidyverse, vroom, readr

рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА tidyverse рджреЛрди рдкреЕрдХреЗрдЬреЗрд╕ рдЖрд╣реЗрдд: vroom, readr. vroom рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ, рдкрд░рдВрддреБ рднрд╡рд┐рд╖реНрдпрд╛рдд рдкреЕрдХреЗрдЬреЗрд╕ рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдкрд╛рд╕реВрди рдХреЛрдЯ рдЕрдзрд┐рдХреГрдд рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг vroom.

vroom рд╡рд┐рд░реБрджреНрдз рд╡рд╛рдЪрдХ
рдХрд╛рдп рд░рд┐рд▓реАрдЭ рдХрд░рддреЗ vroom рд╕рд╛рдареА рдЕрд░реНрде readr? рд╕рдзреНрдпрд╛ рдЖрдореНрд╣реА рджреЛрди рдкреЕрдХреЗрдЬреЗрд╕ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реВ рджреЗрдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЛрдд, рдкрд░рдВрддреБ рднрд╡рд┐рд╖реНрдпрд╛рдд рдЖрдореНрд╣реА рдкреЕрдХреЗрдЬреЗрд╕ рдПрдХрддреНрд░ рдХрд░реВ. рд╡реНрд░реБрдордЪреНрдпрд╛ рдЖрд│рд╢реА рд╡рд╛рдЪрдирд╛рдЪрд╛ рдПрдХ рддреЛрдЯрд╛ рдореНрд╣рдгрдЬреЗ рдХрд╛рд╣реА рдбреЗрдЯрд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдореЛрд░ рдиреЛрдВрджрд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд, рддреНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдВрдирд╛ рдПрдХрддреНрд░ рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдпрд╛рдмрджреНрджрд▓ рдереЛрдбрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

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 рдкрдВрдХреНрддреА рдЕрд╕рддреАрд▓.

рдЖрд░ рдордзреНрдпреЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рддрдпрд╛рд░ рдХрд░рдгреЗ: 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)

рд╕реНрддрдВрдн рдирд┐рд╡рдбрдгреЗ

рддреБрдореНрд╣реА рдХрд╛рдо рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреНрдпреЗ рдбрдЭрдирднрд░ рдХрд┐рдВрд╡рд╛ рд╢реЗрдХрдбреЛ рдХреЙрд▓рдо рдбреЗрдЯрд╛ рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдкрд░рдВрддреБ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕реНрддреНрд░реЛрдд рд╕рд╛рд░рдгреАрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╕реНрддрдВрднрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди 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'])

рдкрдВрдХреНрддреА рдлрд┐рд▓реНрдЯрд░ рдХрд░рдгреЗ

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

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди 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)]

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

рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдкреИрдХреА рдПрдХ рдореНрд╣рдгрдЬреЗ рдЧрдЯ рдЖрдгрд┐ рдПрдХрддреНрд░реАрдХрд░рдг.

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди 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(), рдЖрдгрд┐ рдЖрдгрдЦреА 2 рдлреАрд▓реНрдб рдЬреЛрдбрд▓реЗ: рдкреНрд░рд╡рд╛рд╕реА ╨╕ рд╕рд░рд╛рд╕рд░реА_рдХрд┐рдВрдордд. рдкреНрд░рдердо, рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВрди 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]

Python рдордзреАрд▓ рдбреЗрдЯрд╛рдЪреЗ рд╕рдореВрд╣реАрдХрд░рдг рдЖрдгрд┐ рдПрдХрддреНрд░реАрдХрд░рдг: рдкрд╛рдВрдбрд╛

рдордзреНрдпреЗ рдЧрдЯ рдХрд░рдгреЗ 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. рдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдд рдПрдХрд╕рд╛рд░рдЦреНрдпрд╛ рдЖрд╣реЗрдд, рдореНрд╣рдгрдЬреЗ. рд╕рдорд╛рди рд╕реНрддрдВрдн рдЖрд╣реЗрдд рдЖрдгрд┐ рдпрд╛ рд╕реНрддрдВрднрд╛рдВрдордзреАрд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗрдд.

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

рд╣реЗ рдиреЛрд╡реНрд╣реЗрдВрдмрд░ рдЖрдгрд┐ рдбрд┐рд╕реЗрдВрдмрд░ рдорд╣рд┐рдиреНрдпрд╛рд╕рд╛рдареА Google Analytics рд╡рд░реВрди рдЕрдкрд▓реЛрдб рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ, рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд рдЖрдореНрд╣реА рд╣рд╛ рдбреЗрдЯрд╛ рдПрдХрд╛ рдЯреЗрдмрд▓рдордзреНрдпреЗ рдПрдХрддреНрд░ рдХрд░реВ.

рдЯреЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдЕрдиреБрд▓рдВрдм рдЬреЛрдбрдгреЗ 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)

рдкрд╛рдпрдерди: рдкрд╛рдВрдбрд╛ рдордзреАрд▓ рдЯреЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдЕрдиреБрд▓рдВрдм рдЬреЛрдбрдгреЗ

╨Т pandas рдлрдВрдХреНрд╢рди рдЯреЗрдмрд▓рдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ concat(), рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдлреНрд░реЗрдореНрд╕ рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА рдкрд╛рд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

Python рдордзреНрдпреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд┐рд▓реНрдЯрд░ рдХрд░рдгреЗ: pandas

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

рдЯреЗрдмрд▓реНрд╕рдЪреЗ рдХреНрд╖реИрддрд┐рдЬ рдЬреЛрдб

рдПрдХ рдСрдкрд░реЗрд╢рди рдЬреНрдпрд╛рдордзреНрдпреЗ рджреБрд╕рд░реНтАНрдпрд╛рдордзреАрд▓ рд╕реНрддрдВрдн рдкрд╣рд┐рд▓реНрдпрд╛ рд╕рд╛рд░рдгреАрдордзреНрдпреЗ рдХреА рджреНрд╡рд╛рд░реЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рддрд╛рдд. рдХрд╛рд╣реА рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛рд╕рд╣ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЙрддреНрдкрд╛рджрдирд╛рдЪреА рдХрд┐рдВрдордд) рддрдереНрдп рд╕рд╛рд░рдгреА (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд┐рдХреНрд░реА рдбреЗрдЯрд╛рд╕рд╣ рдЯреЗрдмрд▓) рд╕рдореГрджреНрдз рдХрд░рддрд╛рдирд╛ рд╣реЗ рд╕рд╣рд╕рд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

рдЬреЛрдбрдгреНрдпрд╛рдЪреЗ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗрдд:

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди tidyverse рдЖрдгрд┐ data.table рдЖрдгрд┐ рдкрд░рдд рд╕реНрдерд▓рд╛рдВрддрд░

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

1 - рдорд╣рд┐рд▓рд╛
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 тАФ рд╕рд╛рдореАрд▓ рд╣реЛрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдХрд╛рд░, рд╕рд░реНрд╡ рджреЛрдиреНрд╣реА рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреВрди рд╕рд░реНрд╡ рдкрдВрдХреНрддреА рдкрд░рдд рдХрд░реЗрд▓, all.x рдбрд╛рд╡реНрдпрд╛ рд╕рд╛рдореАрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ (рдкрд╣рд┐рд▓реНрдпрд╛ рд╕рд╛рд░рдгреАрдЪреНрдпрд╛ рд╕рд░реНрд╡ рдкрдВрдХреНрддреА рд╕реЛрдбреЗрд▓), 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")

рдореВрд▓рднреВрдд рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпреЗ рдЖрдгрд┐ рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реЗ рд╕реНрддрдВрдн

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

рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рднрд╛рд╖рд╛ рдирд┐рд╡рдбрд╛рд╡реА - рдЖрд░ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрдерди? рджреЛрдиреНрд╣реА! рдкрд╛рдВрдбрд╛ рд╡рд░реВрди 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]

Python рдордзреНрдпреЗ рд╡рд┐рдВрдбреЛ рдлрдВрдХреНрд╢рдиреНрд╕: pandas

рдордзреНрдпреЗ рдирд╡реАрди рд╕реНрддрдВрдн рдЬреЛрдбрдгреНрдпрд╛рдЪрд╛ рдПрдХ рдорд╛рд░реНрдЧ pandas - рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░рд╛ assign(). рдкрдВрдХреНрддреА рдЧрдЯ рди рдХрд░рддрд╛, рдХреЗрдмрд┐рди рд╡рд░реНрдЧрд╛рдиреБрд╕рд╛рд░ рддрд┐рдХрд┐рдЯрд╛рдВрдЪреА рдХрд┐рдВрдордд рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВ transform().

рдЦрд╛рд▓реА рдПрдХрд╛ рд╕реЛрд▓реНрдпреВрд╢рдирдЪреЗ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдЯреЗрдмрд▓рдордзреНрдпреЗ рдЬреЛрдбрддреЛ рдкреНрд░рдЪрдВрдб рд╕рдорд╛рди 2 рд╕реНрддрдВрдн.

Python рдордзреНрдпреЗ рд╡рд┐рдВрдбреЛ рдлрдВрдХреНрд╢рдиреНрд╕: pandas

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()

рдЯреЗрдмрд▓реНрд╕рдЪреЗ рдХреНрд╖реИрддрд┐рдЬ рдЬреЛрдбрдгреЗ (рдЬреЙрдЗрди)
left_join() / *_join()
merge()
merge()

рдореВрд▓рднреВрдд рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпреЗ рдЖрдгрд┐ рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реЗ рд╕реНрддрдВрдн рдЬреЛрдбрдгреЗ
group_by() + mutate()
рдпреБрдХреНрддрд┐рд╡рд╛рдж j рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░реВрди := + рдпреБрдХреНрддрд┐рд╡рд╛рдж by
transform() + assign()

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

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

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

рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд▓реЗрдЦ рдЖрд╡рдбрд▓рд╛ рдЕрд╕реЗрд▓, рддрд░ рдорд▓рд╛ рдорд╛рдЭреЗ рдирд╡реАрди рд╕рджрд╕реНрдп рдорд┐рд│рд╛рд▓реНрдпрд╛рдмрджреНрджрд▓ рдЖрдирдВрдж рд╣реЛрдИрд▓ YouTube ╨╕ рддрд╛рд░ рдЪреЕрдиреЗрд▓

рд╕рд░реНрд╡реЗрдХреНрд╖рдг

рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдХрд╛рдорд╛рдд рдЦрд╛рд▓реАрд▓рдкреИрдХреА рдХреЛрдгрддреЗ рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░рддрд╛?

рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдирд┐рд╡рдбреАрдЪреЗ рдХрд╛рд░рдг рд▓рд┐рд╣реВ рд╢рдХрддрд╛.

рдХреЗрд╡рд│ рдиреЛрдВрджрдгреАрдХреГрдд рд╡рд╛рдкрд░рдХрд░реНрддреЗрдЪ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╛рдд рднрд╛рдЧ рдШреЗрдК рд╢рдХрддрд╛рдд. рд╕рд╛рдЗрди рдЗрди рдХрд░рд╛, рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ.

рддреБрдореНрд╣реА рдХреЛрдгрддреЗ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░рддрд╛ (рддреБрдореНрд╣реА рдЕрдиреЗрдХ рдкрд░реНрдпрд╛рдп рдирд┐рд╡рдбреВ рд╢рдХрддрд╛)

  • 45,2%рдиреАрдЯрдиреЗрдЯрдХрд╛19

  • 33,3%data.table14

  • 54,8%рдкрд╛рдВрдбрд╛23

42 рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдорддрджрд╛рди рдХреЗрд▓реЗ. 9 рд╡рд╛рдкрд░рдХрд░реНрддреЗ рджреВрд░ рд░рд╛рд╣рд┐рд▓реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛