Data.table: рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕, рд░реЛрд▓рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрдЯреНрд╕, рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ, рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  39рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Rdatatable/data.table

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдПрдХрддреНрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ _рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕_ рдлрд╝реАрдЪрд░ (рдЬрд┐рд╕реЗ _рд░реЛрд▓рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрдЯреНрд╕_, _рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛ_ рдпрд╛ _рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ_/_рдореВрд╡рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрдЯреНрд╕_ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдирд╛рддреЗ рд╣реБрдП ~4 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ред

рд░реЛрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдп

  • [рдПрдХреНрд╕] рд░реЛрд▓рдореАрди
  • [рдПрдХреНрд╕] рд░реЛрд▓рд╕рдо
  • [] рд░реЛрд▓рдорд┐рди
  • [] рд░реЛрд▓рдореИрдХреНрд╕
  • [ ] рд░реЛрд▓рдореАрдбрд┐рдпрди
  • [] рд░реЛрд▓рдкреНрд░реЛрдб
  • [] рд░реЛрд▓реНрд╕рдбреА
  • [ ] рд░реЛрд▓рд╡рд╛рд░
  • [] рд░реЛрд▓рд░реИрдВрдХ
  • [x] рд░реЛрд▓рдЕрдк (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ FUN)
  • [] рд░реЛрд▓рд░рд┐рдЧреНрд░реЗрд╢рди (рдЕрддреНрдпрдзрд┐рдХ рдорд╛рдВрдЧ)
  • [ ] рд░реЛрд▓рдХреЛрд░?
  • [ ] рд░реЛрд▓рдХреЛрд╡?

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

  • [x] рдПрдХ рд╕рд╛рде рдХрдИ рдХреЙрд▓рдо
  • [x] рдПрдХ рд╕рд╛рде рдХрдИ рд╡рд┐рдВрдбреЛ
  • [x] рдПрдХ рд╕рд╛рде рдХрдИ рдХреЙрд▓рдо рдФрд░ рдХрдИ рд╡рд┐рдВрдбреЛ
  • [x] рдкрд░рдорд╛рдгреБ рд╕рджрд┐рд╢ рдЗрдирдкреБрдЯ рдФрд░ рдПрдХрд▓ рдЦрд┐рдбрд╝рдХреА рдкрд░рдорд╛рдгреБ рд╕рджрд┐рд╢ рд▓реМрдЯрд╛рддреА рд╣реИ
  • [x] рд╡реИрдХреНрдЯрд░ рдХреА рд╡рд┐рднрд┐рдиреНрди рд▓рдВрдмрд╛рдИ рд╕реВрдЪреА
  • [x] рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ: рдмрд╛рдПрдБ/рдХреЗрдВрджреНрд░/рджрд╛рдПрдБ
  • [x] рдПрдирдПрдПрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
  • [x] рд╕реНрдерд┐рд░рд╛рдВрдХ рднрд░реЗрдВ
  • [x] рд▓рдВрдмреЗ рд╡реЗрдХреНрдЯрд░ рд╕рдорд░реНрдерди
  • [] рдЖрдВрд╢рд┐рдХ рд╡рд┐рдВрдбреЛ рд╕рдорд░реНрдерди (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ ea766f2499034cedf6abf872440268b78979147c рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  • [x] рдЕрдиреБрдХреВрд▓реА рд╡рд┐рдВрдбреЛ рд╕рдорд░реНрдерди
  • [x] рдПрдХрд╛рдзрд┐рдХ рдХреЙрд▓рдо/рд╡рд┐рдВрдбреЛ рдХреА рдЧрдгрдирд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрдирдПрдордкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • [x] рдЧреЛрд▓рд╛рдИ рддреНрд░реБрдЯрд┐ рд╕реБрдзрд╛рд░
  • [x] рд╕рдорд╛рдирд╛рдВрддрд░ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдореЗрдВ рд╕рдордп (~#3422~, #3423 рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз)

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

@mattdowle рдкреАрдЖрд░ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рд╣реИ

рд╣рдо рдЗрд╕реЗ data.table рдХреЗ рдЕрдВрджрд░ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╣рдо рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдФрд░ data.table рд╕реЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

  1. рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдореЗрдВ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдХрд░ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореБрджреНрджреЗ рдмрдирд╛рдП рдЧрдП рдереЗред рд╕рд╛рде рд╣реА рдХрдИ SO рдкреНрд░рд╢реНрди data.table рдХреЛ рдЯреИрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. data.table рд╕рдордп-рд╢реНрд░реГрдВрдЦрд▓рд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдФрд░ рд░реЛрд▓рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрдЯ рд╡рд╣рд╛рдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЖрдВрдХрдбрд╝реЗ рд╣реИрдВред

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ (рдбреЗрдЯрд╛ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╣реА рд╕рдВрднрд╡ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБред рдЯреЗрдмрд▓; рдЬреИрд╕реЗ рдЕрдВрджрд░ [...] рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд) рдФрд░ рд╕реА рд╕реНрддрд░ рдкрд░ рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ред рдЯреЗрдмрд▓ рдЗрдВрдЯрд░реНрдирд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреНрд░реЛрд▓* рдХреЛ рдЬрд╛рдЧрд░реВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдгред

рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рдЧрддрд┐ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЖрдЬрдХрд▓ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рдХреБрдВрдЬреА/рд╕реВрдЪрдХрд╛рдВрдХ рдлреНрд░реЛрд▓рдорд┐рди/рдлреНрд░реЛрд▓рдореИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдк рдЪрд░ рдкрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдк рдЪрд░ рдкрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рд╣рдордиреЗ рдЕрднреА рддрдХ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ GForce рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рд╕рдордЭ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рд░реЛрд▓ * рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдЬрд╛рд░реА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рд▓реЗрдХрд┐рди рдЙрддреНрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ (рдЧреИрд░-рд░реЛрд▓рд┐рдВрдЧ рдорд╛рдзреНрдп, рдпреЛрдЧ, рдЖрджрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред

рдпрджрд┐ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдареЛрд╕ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд rollmean рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рд╕рд░рд▓реАрдХреГрддред

x = data.table(v1=1:5, v2=1:5)
k = c(2, 3)
i - single column
j - single window
m - int referring to single row
w - current row's sum of rolling window
r - answer for each i, j



md5-be70673ef4a3bb883d4f334bd8fadec9



for i in x
  for j in k
  r = NA_real_
  w = 0
    for m in 1:length(i)
      w = w + i[m]
      w = w - i[m-j]
      r[m] = w / j

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

рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдХрдИ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд╕рдореВрд╣реЛрдВ (рд╡рд┐рдВрдбреЛрдЬрд╝) рдореЗрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХреАред рддрдм рдПрдкреАрдЖрдИ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

DT[i, j,
   by = roll(width=5, align="center")]

рдлрд┐рд░ рдпрджрд┐ j рдореЗрдВ mean(A) , рддреЛ рд╣рдо рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ rollmean(A) - рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рд╣рдо рдЕрднреА gmean() рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╛ j рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЬреИрд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдЪрд▓рд╛рдПрдВ), рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо .SD рдбреЗрдЯрд╛ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░реЗрдВрдЧреЗред рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд╣рдо рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ рддреБрд░рдВрддред

рдЗрд╕ рддрд░рд╣ 10+ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХред рдФрд░ рдпрд╣ data.table-y рднрд╛рд╡рдирд╛ рдореЗрдВ рднреА рд▓рдЧрддрд╛ рд╣реИред

рд╣рд╛рдБ рд╕рд╣рдордд

рд╢рдирд┐рд╡рд╛рд░, рдЕрдкреНрд░реИрд▓ реирез, реирежрезрео, рей:рейрео рдЕрдкрд░рд╛рд╣реНрди рдкрд╛рд╢рд╛ рд╕реНрдЯреЗрдЯреНрд╕реЗрдВрдХреЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com . рдкрд░
рд▓рд┐рдЦрд╛ рдерд╛:

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

рдбреАрдЯреА [рдореИрдВ, рдЬреЗ,
рджреНрд╡рд╛рд░рд╛ = рд░реЛрд▓ (рдЪреМрдбрд╝рд╛рдИ = 5, рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ = "рдХреЗрдВрджреНрд░")]

рдлрд┐рд░ рдпрджрд┐ j рдореЗрдВ, рдорд╛рди рд▓реАрдЬрд┐рдП, рдорд╛рдзреНрдп (A) рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
Rollmean(A) -- рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рд╣рдо рдЕрднреА gmean() рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╛ рдЬреЗ рдХреИрди
рдПрдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдХрд╣рддреЗ рд╣реИрдВ, рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдЪрд▓рд╛рдПрдБ
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ), рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо .SD data.table рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░реЗрдВрдЧреЗ - рдмрд┐рд▓реНрдХреБрд▓
рдЬреИрд╕реЗ рд╣рдо рдЕрднреА рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рддрд░рд╣ 10+ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХред рдФрд░ рдпрд╣
data.table-y рднрд╛рд╡рдирд╛ рдореЗрдВ рднреА рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/Rdatatable/data.table/issues/2778#issuecomment-383275134 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AHQQdbADiE4aAI1qPxPnFXUM5gR-0w2Tks5tquH8gaJpZM4TeTQf
.

@ рд╕реЗрдВрдЯ-рдкрд╛рд╢рд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░, data.table-y рднрд╛рд╡рдирд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рд╕реАрдорд╛рдПрдВ рд▓рдЧрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред


  • рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рд░реЛрд▓рдореАрди рдХреИрд╕реЗ рдХрд░реЗрдВ
DT[, rollmean(V1, 3), by=V2]
  • рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ
DT[, .(rollmean(V1, 3), rollmean(V2, 100))]
  • [.data.table рдмрд╛рд╣рд░ рд░реЛрд▓рдореАрди рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдо рд╢рд┐рдлреНрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
rollmean(rnorm(10), 3)
  • рдЬреИрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдХрд░реЗрдВ
DT[, .(rollmean(list(V1, V2), c(5, 20)), rollmean(list(V2, V3), c(10, 30)))]
  • рдПрдХ рд╣реА j рдХреЙрд▓ рдореЗрдВ mean рдФрд░ rollmean рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ
DT[, .(rollmean(V1, 3), mean(V1)), by=V2]

рдЖрдорддреМрд░ рдкрд░ by рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдЯреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рдорд╛рди рд▓рдВрдмрд╛рдИ рдХреЗ рд╡реЗрдХреНрдЯрд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред SQL рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдирд┐рдореНрди рд╢реИрд▓реА рдореЗрдВ API рд╣реИ:

SELECT AVG(value) OVER (ROWS BETWEEN 99 PRECEDING AND CURRENT ROW)
FROM tablename;

рдЖрдк рдЗрд╕реЗ рдЕрднреА рднреА рдЧреНрд░реБрдк рдмрд╛рдп рдХреЗ рд╕рд╛рде рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

SELECT AVG(value) OVER (ROWS BETWEEN 99 PRECEDING AND CURRENT ROW)
FROM tablename
GROUP BY group_columns;

рддреЛ SQL рдореЗрдВ рд╡реЗ рдлрд╝рдВрдХреНрд╢рди SELECT рдЬреЛ DT рдореЗрдВ j рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдбреАрдЯреА рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

DT[, rollmean(value, 100)]
DT[, rollmean(value, 100), group_columns]

рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рдПрдХ рд╣реА рд╢реНрд░реЗрдгреА рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ shift рдЬреЛ рдЗрдирдкреБрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рднреА рджреЗрддрд╛ рд╣реИред
рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рд╢рд┐рдлреНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

SELECT LAG(value, 1) OVER ()
FROM tablename;

mean рдФрд░ rollmean рдХреЗрд╡рд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдп рд╣реИрдВред рдПрдХ рдХрд╛ рдорддрд▓рдм рд╕рдореВрд╣ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХрддреНрд░ рд╣реЛрдирд╛ рдерд╛, рджреВрд╕рд░рд╛ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдирд╣реАрдВред рдпрд╣ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП GROUP BY рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ GROUP BY рдЬреИрд╕реЗ рд╕рдореБрдЪреНрдЪрдп рдХреЗ рд▓рд┐рдП mean рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЕрдВрддрддрдГ рд╕рдореВрд╣реАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп рдХреБрд▓ рдЕрдиреБрджрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛) рдЦрдВрдб рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ)ред
рдореБрдЭреЗ mean рд╕рдорд╛рди рдЕрдиреБрдХреВрд▓рди рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рддрд░реНрдХ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╣ рд╕рдм рд╕рд┐рд░реНрдл data.table-y рдХреЗ рд▓рд┐рдП рдЖрддреНрдорд╛ред рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ data.table-y рднрд╛рд╡рдирд╛ рднреА рд╣реИ, рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ := рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ shift ред рдпрд╣ рд╕рд┐рд░реНрдл рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ data.table рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

@jangorecki рдзрдиреНрдпрд╡рд╛рдж, рдпреЗ рд╕рднреА рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред рдмреЗрд╢рдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрднрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдЪрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ "рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ" рдХреНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рд░реЛрд▓рдореАрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: рдпрд╣ рдХреЗрд╡рд▓ 2-рд╕реНрддрд░реАрдп рд╕рдореВрд╣реАрдХрд░рдг рд╣реИ: DT[, mean(V1), by=.(V2, roll(3))] ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдореЗрд░реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рдо рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ ...

рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рднреА рд░реЛрд▓рд┐рдВрдЧ рдЬреЙрдЗрди рдХреЗ рд▓рд┐рдП SQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╡реЗ рдорд╛рдирдХ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рдЬреИрд╕реЗ AVG рдлрд┐рд░ рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрд┐рдВрдЧ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЯреНрд░рд╛рдВрдЬреИрдХреНрдЯ-рдПрд╕рдХреНрдпреВрдПрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╡рд╣рд╛рдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ/рднреМрддрд┐рдХ рдкрдВрдХреНрддрд┐ рдЪрдпрди рдХреЗ рдмреАрдЪ рднреЗрджред рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рдо рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ "рдУрд╡рд░" рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд╣реА рдУрд╡рд░ рдХреНрд▓реЙрдЬ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдХрд▓ roll() рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрдо рд╣реЛрдЧреАред

рд╕рд╛рде рд╣реА, рдпрд╣ SO рдкреНрд░рд╢реНрди рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ SQL рдореЗрдВ рдУрд╡рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

рдЖрдк Group BY SalesOrderID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ GROUP BY рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЙрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдореЗрдХрд┐рдд рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ GROUP BY рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, GROUP BY рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдВрдбреЛрдб рдПрдЧреНрд░реАрдЧреЗрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕рдореЗрдХрд┐рдд рдФрд░ рдЧреИрд░-рдПрдХрддреНрд░рд┐рдд рджреЛрдиреЛрдВ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЕрдкрдиреА рдЙрджрд╛рд╣рд░рдг рдХреНрд╡реЗрд░реА рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдПрдХ рд╣реА SalesOrderIDs рдХреЗ рд╕рдореВрд╣реЛрдВ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрд░реНрдбрд░рдХреНрдпреВрдЯреА рдорд╛рди рдФрд░ рдЙрдирдХреА рд░рдХрдо, рдЧрдгрдирд╛, рдФрд╕рдд рдЗрддреНрдпрд╛рджрд┐ рджреЛрдиреЛрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддреЛ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдорд╛рдирдХ SQL рдХреА рд╕реАрдорд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдБ рд╕рдореВрд╣-рджрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрд╕рдВрдЧрдард┐рдд рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдПрдХ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ A рдФрд░ mean(A) рджреЛрдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛)ред рд╣рд╛рд▓рд╛рдБрдХрд┐ data.table рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рдЪреБрдирд╛рд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИред


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

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

  • рддреЛ, рдкрд╣рд▓рд╛ рд╡рд┐рд╕реНрддрд╛рд░ "рдЪрд┐рдХрдиреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ" рдХреЛ рджреЗрдЦрдирд╛ рд╣реИ: рдкрд┐рдЫрд▓реЗ рдЕрд╡рд▓реЛрдХрдиреЛрдВ рдкрд░ рдПрдХ рдФрд╕рдд рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЕрддреАрдд рдореЗрдВ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдЙрд╕рдХрд╛ рдпреЛрдЧрджрд╛рди рдЙрддрдирд╛ рд╣реА рдХрдо рд╣реЛрдЧрд╛ред рдпрд╛ рдПрдХ рдЧрд╛рдКрд╕реА рдХрд░реНрдиреЗрд▓ рдкрд░ рдЖрд╕-рдкрд╛рд╕ рдХреЗ рдФрд╕рдд рдЕрд╡рд▓реЛрдХрдиред
  • рджреВрд╕рд░рд╛ рдЕрдиреБрдХреВрд▓реА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдВрддрд░рд╛рд▓ [0, 1] рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢реЛрд░ рдЗрдирдкреБрдЯ рд╣реИ, рддреЛ ┬▒N рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЪрд┐рдХрдирд╛ рдХрд░рдирд╛ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рдкрдХреНрд╖рдкрд╛рддрдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирд┐рд╖реНрдкрдХреНрд╖ рдЕрдиреБрдорд╛рдирдХ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рджреВрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред
  • рдкреБрди: рдирдореВрдирд╛ рдЪреМрд░рд╕рд╛рдИ: рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдЕрд╡рд▓реЛрдХрдиреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдз рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢реЛрд░ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪрд┐рдХрдиреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИ рдЬреЛ рдореВрд▓ рдЗрдирдкреБрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореЛрдЯреЗ/рдорд╣реАрди рд╣реИред рдпрд╛ рд╢рд╛рдпрдж рдореВрд▓ рдбреЗрдЯрд╛ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рдЧреНрд░рд┐рдб рдкрд░ рдлрд┐рд░ рд╕реЗ рдирдореВрдирд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рдЬреИрдХрдирд╛рдЗрдл: рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд░реНрддрдорд╛рди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЕрд╡рд▓реЛрдХрдиреЛрдВ рдкрд░ рдФрд╕рдд/рдкреНрд░рддрд┐рдЧрдорди рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рдХреЗ-рдлреЛрд▓реНрдб рд╕реНрдкреНрд▓рд┐рдЯ: рдбреЗрдЯрд╛ рдХреЛ рдХрдИ рд╕рдореВрд╣реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдЕрд╡рд▓реЛрдХрдиреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИред

рдЗрди рд╕рднреА рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЧреНрд░реБрдкрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдЗрд╕ рд╕реВрдЪреА рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред

рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рднреА рд░реЛрд▓рд┐рдВрдЧ рдЬреЙрдЗрди рдХреЗ рд▓рд┐рдП SQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд░реЛрд▓рд┐рдВрдЧ рдЬреЙрдЗрди рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рдо рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ "рдУрд╡рд░" рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд╣реА рдУрд╡рд░ рдХреНрд▓реЙрдЬ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдХрд▓ рд░реЛрд▓ () рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрдо рд╣реЛрдЧреАред

рдпрд╣ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рдмрд╛рдд рд╣реИ, рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА OVER() рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ GROUP BY рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рд▓реБрдХрдЕрдк рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рднреА рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд╛рдп рдХреЗ рд▓рд┐рдП рдЗрд▓рд╛рдХреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░ () рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╕реЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдбреЙрдХреНрд╕ рд╕реЗ рдЙрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, GROUP BY рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдВрдбреЛрдб рдПрдЧреНрд░реАрдЧреЗрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕рдореЗрдХрд┐рдд рдФрд░ рдЧреИрд░-рдПрдХрддреНрд░рд┐рдд рджреЛрдиреЛрдВ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

data.table рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢реНрди рдореЗрдВ := рдФрд░ by рдХрд░рддреЗ рд╣реИрдВред

рддреЛ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдорд╛рдирдХ SQL рдХреА рд╕реАрдорд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдБ рд╕рдореВрд╣-рджрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрд╕рдВрдЧрдард┐рдд рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдПрдХ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ A рдФрд░ рдорд╛рдзреНрдп (A) рджреЛрдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛)ред рд╣рд╛рд▓рд╛рдБрдХрд┐ data.table рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рдЪреБрдирд╛рд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИред

рдпрд╣ SQL рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ GROUP BY рдХрд╛ рдХреЗрд╡рд▓ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рдХрд┐ рдпрд╣ рд╕рдореЗрдХрд┐рдд рд╣реЛрдЧрд╛, рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ by рд╕рдореБрдЪреНрдЪрдпред рдирдИ рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛рдУрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдПрдкреАрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред SQL рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЧреНрд░реБрдкрд┐рдВрдЧ FUN() OVER (PARTITION BY ...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ _partition by_ рдПрдХрд▓ рдорд╛рдк рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕рдореВрд╣ рдХреА рддрд░рд╣ рд╣реИред рдЗрд╕рд▓рд┐рдП SQL рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрд╕ API рдХреЛ j рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП j = mean(V1, roll=5) рдпрд╛ j = over(mean(V1), roll=5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рднреА рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред

рдЖрдк "┬▒50 рдкреНрд░реЗрдХреНрд╖рдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд░реЛрд▓рд┐рдВрдЧ рдорд╛рдзреНрдп" рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реБрдЪрд╛рд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП align рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ, рдкрд╣рд▓рд╛ рд╡рд┐рд╕реНрддрд╛рд░ "рдЪрд┐рдХрдиреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ" рдХреЛ рджреЗрдЦрдирд╛ рд╣реИ: рдкрд┐рдЫрд▓реЗ рдЕрд╡рд▓реЛрдХрдиреЛрдВ рдкрд░ рдПрдХ рдФрд╕рдд рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЕрддреАрдд рдореЗрдВ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдЙрд╕рдХрд╛ рдпреЛрдЧрджрд╛рди рдЙрддрдирд╛ рд╣реА рдХрдо рд╣реЛрдЧрд╛ред рдпрд╛ рдПрдХ рдЧрд╛рдКрд╕реА рдХрд░реНрдиреЗрд▓ рдкрд░ рдЖрд╕-рдкрд╛рд╕ рдХреЗ рдФрд╕рдд рдЕрд╡рд▓реЛрдХрдиред

рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ (рд╡рд╕реНрддреБрддрдГ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛) рд╣реИрдВ, рд╕рдмрд╕реЗ рдЖрдо рд╕реНрдореВрдерд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдлрдВрдХреНрд╢рди (рд░реЛрд▓рдореАрди/рдПрд╕рдПрдордП рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ (рдИрдПрдордП) рд╣реИред рдХреМрди рд╕рд╛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреМрди рд╕рд╛ рдирд╣реАрдВ, рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдгрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЕрдм рддрдХ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк SO, рдФрд░ рд╣рдорд╛рд░реЗ рд░реЗрдкреЛ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣рд╛рдВ рд╡реЗ рдХреБрдЫ рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ 95+% рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдореБрдЭреЗ рдИрдПрдордП рдФрд░ рдЕрдиреНрдп рдПрдордП рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЯреЗрдмрд▓ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИ), рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВред рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЬрд┐рдирдореЗрдВ рдореИрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реВрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4 рд╕рд╛рд▓ рд╕реЗ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрд╡рд┐рджреН рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрддреЗ рд╣реБрдП, рдпрд╣ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ

рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕рд┐рдВрдЧ (рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛) рдФрд░ рдореВрд▓реНрдп рдкреНрд░рд╡реГрддреНрддрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рджрд╕рд┐рдпреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд▓рддреА рдФрд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛) рд╕реЗ рдЖрддрд╛ рд╣реИред

rollmean рдбреНрд░рд╛рдлреНрдЯ рдХреЛ roll рд╢рд╛рдЦрд╛ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдЬреЛ рд░реЛрд▓рд┐рдВрдЧ рдорд╛рдзреНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдореМрдЬреВрдж na.rm=FALSE рдФрд░ NA рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди NA рдХреЛ рд▓рдЧрд╛рддрд╛рд░ mean рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬреЛ ISNAN рдХреЙрд▓ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдб рд▓рдЧрд╛рддрд╛ рд╣реИред рд╣рдо рдПрдкреАрдЖрдИ рдХреЛ рддреЗрдЬ рд▓реЗрдХрд┐рди рдХрдо рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдореЗрдВ рдХреЛрдИ рдПрдирдП рдирд╣реАрдВ рд╣реИред
рдкреАрдЖрд░ #2795 . рдореЗрдВ рд╣реИ

@mattdowle рдкреАрдЖрд░ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рд╣реИ

рд╣рдо рдЗрд╕реЗ data.table рдХреЗ рдЕрдВрджрд░ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╣рдо рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдФрд░ data.table рд╕реЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

  1. рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдореЗрдВ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдХрд░ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореБрджреНрджреЗ рдмрдирд╛рдП рдЧрдП рдереЗред рд╕рд╛рде рд╣реА рдХрдИ SO рдкреНрд░рд╢реНрди data.table рдХреЛ рдЯреИрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. data.table рд╕рдордп-рд╢реНрд░реГрдВрдЦрд▓рд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдФрд░ рд░реЛрд▓рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрдЯ рд╡рд╣рд╛рдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЖрдВрдХрдбрд╝реЗ рд╣реИрдВред

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ (рдбреЗрдЯрд╛ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╣реА рд╕рдВрднрд╡ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБред рдЯреЗрдмрд▓; рдЬреИрд╕реЗ рдЕрдВрджрд░ [...] рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд) рдФрд░ рд╕реА рд╕реНрддрд░ рдкрд░ рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ред рдЯреЗрдмрд▓ рдЗрдВрдЯрд░реНрдирд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреНрд░реЛрд▓* рдХреЛ рдЬрд╛рдЧрд░реВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдгред

рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рдЧрддрд┐ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЖрдЬрдХрд▓ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рдХреБрдВрдЬреА/рд╕реВрдЪрдХрд╛рдВрдХ рдлреНрд░реЛрд▓рдорд┐рди/рдлреНрд░реЛрд▓рдореИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдк рдЪрд░ рдкрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдк рдЪрд░ рдкрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рд╣рдордиреЗ рдЕрднреА рддрдХ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ GForce рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рд╕рдордЭ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рд░реЛрд▓ * рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдЬрд╛рд░реА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рд▓реЗрдХрд┐рди рдЙрддреНрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ (рдЧреИрд░-рд░реЛрд▓рд┐рдВрдЧ рдорд╛рдзреНрдп, рдпреЛрдЧ, рдЖрджрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред

рдпрджрд┐ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдареЛрд╕ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ sparklyr рдмрд╣реБрдд рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@harryprince рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдереЛрдбрд╝рд╛ рдФрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрдкрд╛рд░реНрдХрд▓реАрд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?
"рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕" рдХреЗ рдЕрдиреБрд╕рд╛рд░

рд░реЛрд▓рд┐рдВрдЧ рд╕рдореБрдЪреНрдЪрдп рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реА рдЦрд┐рдбрд╝рдХреА рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрдзрд╛рд░ R рдпрд╛ dplyr рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди RcppRoll рдЬреИрд╕реЗ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред

AFAIU рдЖрдк рд╕реНрдкрд╛рд░реНрдХрд▓реАрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╕реНрдЯрдо рд╕реНрдкрд╛рд░реНрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП dplyr рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╣реА рд╣реИ?

рдпрд╣ рдореБрджреНрджрд╛ рд░реЛрд▓рд┐рдВрдЧ рдПрдЧреНрд░реАрдЧреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЕрдиреНрдп "рдкреНрд░рдХрд╛рд░" рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА data.table рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реИрдВред

рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рддрд╛рдХрд┐ рд╣рдо (рдЗрди-рдореЗрдореЛрд░реА) рдкреНрд░рджрд░реНрд╢рди рдмрдирд╛рдо sparklyr / SparkR рддреБрд▓рдирд╛ рдХрд░ рд╕рдХреЗрдВ, рдпрд╣ рднреА рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрднреА рд╣реБрдЖ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди:

рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рдкрдХ рджрд╛рдпрд░рд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рд░реЛрд▓рд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреВрдЫрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдФрд╕рдд рдЙрддреНрдкрд╛рдж рдореВрд▓реНрдп рдХрд╛ рдЪрдпрди рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдФрд░ рдлрд┐рд░ рд╢рд╛рдпрдж рд╕рдкреНрддрд╛рд╣ + рд╢реНрд░реЗрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рд╕рднреА рдПрдХ рд╣реА рдкреНрд░рд╢реНрди рдХреЗ рднреАрддрд░ред рдЕрдЧрд░ рд╣рдо рдХрднреА рднреА рдРрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

DT[, .( mean(price, by=date), 
        mean(price, by=week), 
        mean(price, by=c(week, category)) )]

рдЕрдм, рдпрджрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереА, рддреЛ рдпрд╣ рд╡рд╣рд╛рдВ рд╕реЗ рд░реЛрд▓рд┐рдВрдЧ рдорд╛рдзреНрдпрдореЛрдВ рддрдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЫрд▓рд╛рдВрдЧ рд╣реЛрддреА:

DT[, .( mean(price, roll=5), 
        mean(price, roll=20), 
        mean(price, roll=100) )]

рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ rollmean(price, 5) рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ - рдмрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдлреЗрдВрдХрдирд╛ ...

@st-pasha

рджрд┐рдирд╛рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдФрд╕рдд рдЙрддреНрдкрд╛рдж рдореВрд▓реНрдп рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдФрд░ рдлрд┐рд░ рд╢рд╛рдпрдж рд╕рдкреНрддрд╛рд╣+рд╢реНрд░реЗрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ -- рд╕рднреА рдПрдХ рд╣реА рдХреНрд╡реЗрд░реА рдХреЗ рднреАрддрд░ред

AFAIU рдпрд╣ ?groupingsets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ [.data.table рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред

@jangorecki , @st-pasha, and Co. - рдЗрд╕ рдкрд░ рдЖрдкрдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдВрд╢рд┐рдХ рд╡рд┐рдВрдбреЛ рд╕рдорд░реНрдерди рдХреЛ рджрд╛рдпрд░реЗ рд╕реЗ рдХреНрдпреЛрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпрд╛ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░реЛрдбрдореИрдк рдкрд░ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ? рдХрднреА-рдХрднреА рдореЗрд░реЗ рдХрд╛рдо рдЖрдПрдЧрд╛, рдФрд░ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рднрд░ рджреЗрдЧрд╛ рдЬреЛ рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ zoo рдпрд╛ RcppRoll рдореЗрдВ рдирд╣реАрдВ рднрд░рд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкреНрд░рд╢реНрди рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ partial = TRUE рддрд░реНрдХ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@msummersgill рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдорд┐рдЯ рд╢рд╛ рдХреЛ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдВрд╢рд┐рдХ рд╡рд┐рдВрдбреЛ рдлреАрдЪрд░ рдХреЛрдб рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЙрд╕реЗ рдмрд╛рдж рдореЗрдВ рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдкрд░ рднреА рдЫреЛрдЯреА рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдЧрдд рд▓рдЧрд╛ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рд╢рд╛рдпрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ рд╣реА рдкреВрд░рд╛ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ 1:window_size рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдкрддрд╛ рдЖрдВрд╢рд┐рдХ рд╡рд┐рдВрдбреЛ рдХреЛ рднрд░реЗрдВред рддреЛ рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдКрдкрд░реА рднрд╛рдЧ рдХреЗрд╡рд▓ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рднреА рд╣рдо рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ adaptive рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ partial рд╕реБрд╡рд┐рдзрд╛ adaptive рд░реЛрд▓рд┐рдВрдЧ рдорд╛рдзреНрдп рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИред ?froll рдореИрдиреБрдЕрд▓ рдореЗрдВ adaptive рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ partial рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЗрд╕реЗ рдпрд╣рд╛рдБ рдЪрд┐рдкрдХрд╛рдирд╛:

d = as.data.table(list(1:6/2, 3:8/4))
an = function(n, len) c(seq.int(n), rep(n, len-n))
n = an(3, nrow(d))
frollmean(d, n, adaptive=TRUE)

рдмреЗрд╢рдХ рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдВрд╢рд┐рдХ рд╡рд┐рдВрдбреЛ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреИрд░-рдЕрдиреБрдХреВрд▓реА рд░реЛрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рддрдирд╛ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
AFAIK zoo рдореЗрдВ partial рд╕реБрд╡рд┐рдзрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рд░рд┐рдЧреНрд░реЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

@waynelapierre рдЕрдЧрд░ рдЙрд╕рдХреА рдорд╛рдВрдЧ рд╣реЛрдЧреА, рддреЛ рд╣рд╛рдБред рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЗрд░рд╛ +1 . рд╣реИ

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

рдзрдиреНрдпрд╡рд╛рдж!

@randomgambit рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдорд╛рдВрдЧ рди рд╣реЛред рд╕реА рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдХреЗ рдЗрд╕реЗ рдмреЗрд╕ рдЖрд░/рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рд╕реЗ рддреЗрдЬ рд╣реЛрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП "рдСрдирд▓рд╛рдЗрди" рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рдФрд░ рд╣рдо рдЕрдВрддрддрдГ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрди рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рдХрд╛рдЯрдирд╛ рд╣реЛрдЧрд╛ред

@jangorecki рджрд┐рд▓рдЪрд╕реНрдк рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tsibble рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛... DATA.TABLES рдПрдХ tibble ! рджрд┐рдорд╛рдЧ рдЪрдХрд░рд╛ рдЧрдпрд╛ :D

рдПрдХ рдЧреИрд░-рдкреИрд░рд╛рдореАрдЯреНрд░рд┐рдХ "рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХ рдХрд░реНрд╡" рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП frollmean рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬреЛ P[y | x] рдмрд╛рдЗрдирд░реА y рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ x рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛ y рдХреЛ logical рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ integer рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛:

DT = data.table(x = rnorm(1000), y = runif(1000) > .5)
DT[order(x), .(x, p_y = frollmean(y, 50L))]

рдлреНрд░реЛрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐ (рдордЬрд╝рд╛ = "рдорд╛рдзреНрдп", x = x, n = n, рднрд░рдг = рднрд░рдг, algo = algo, align = align, :
x рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреИрд╕реЗ рд╡реЗрдХреНрдЯрд░рдХреГрдд x / n рддрд░реНрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
https://github.com/AdrianAntico/RemixAutoML/commit/d8370712591323be01d0c66f34a70040e2867636#r34784427
рдХрдо рд▓реВрдк, рдХреЛрдб рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рдмрд╣реБрдд рддреЗрдЬ (10x-36x рд╕реНрдкреАрдбрдЕрдк)ред

рдлреНрд░реЛрд▓рдЕрдкреНрд▓рд╛рдИ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░: https://github.com/Rdatatable/data.table/pull/3600

    ### fun             mean     sum  median
    # rollfun          8.815   5.151  60.175
    # zoo::rollapply  34.373  27.837  88.552
    # zoo::roll[fun]   0.215   0.185      NA
    # frollapply       5.404   1.419  56.475
    # froll[fun]       0.003   0.002      NA

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ FUN (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХреЛ рдлреНрд░реЛрд▓рдПрдкреНрд▓реА рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, R рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдбреЗрдЯрд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдмрд▓ рдФрд░ рдлрд╝реНрд░реЙрд▓рд╛рдкреНрд▓реА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ? рддрдм рд╣рдо рд░реЛрд▓рд┐рдВрдЧ рд░рд┐рдЧреНрд░реЗрд╢рди рдпрд╛ рд░реЛрд▓рд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдмреЗрдирдлреЛрд░реНрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рд▓реЗрдмрд▓ рдкрд░ рд╕рд╛рд░рд╛рдВрд╢ред

рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ... рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЖрдк frollapply(dt, 3, FUN) рд▓рдВрдмрд╛рдИ рдХреА рдПрдХ рд╕реВрдЪреА nrow(dt) frollapply(dt, 3, FUN) рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪреА рддрддреНрд╡ data.table рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ FUN(dt[window]) ?
frollapply(x=dt, n=3, fun=FUN)[[3]] рдмрд░рд╛рдмрд░ FUN(dt[1:3])
frollapply(x=dt, n=3, FUN=FUN)[[4]] рдмрд░рд╛рдмрд░ FUN(dt[2:4])
рдХреНрдпрд╛ рд╡реЛ рд╕рд╣реА рд╣реИ? @jerryfuyu0104

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрдИ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реВрдкрд┐рдВрдЧред рд╣рдореЗрдВ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА multi.var=FALSE , рдЬрдм рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ x рд╕реЗ рдЕрдзрд┐рдХ рд▓реВрдк рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рд╣реЛрддрд╛ рд╣реИ: list(FUN(x[[1]]),FUN(x[[2]])) ) рд▓реЗрдХрд┐рди рд╕рднреА рдХреЙрд▓рдо FUN(x) ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдВрд╢рд┐рдХ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП "рдЖрдВрд╢рд┐рдХ" рддрд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

@eliocamp рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ partial рд╡рд┐рдВрдбреЛ рдХреНрдпрд╛ рд╣реИ?

@eliocamp "рдЖрдВрд╢рд┐рдХ" рддрд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдЖрдк рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд░реНрдерди рд╣реИ, adaptive=TRUE рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

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

@jangorecki рдУрд╣, рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛! рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдБрдЧрд╛ред

рд╕рд╣рдордд рд╣реВрдВ, рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрд▓реНрдХрд┐ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рднреА рдЖрдВрд╢рд┐рдХ рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред adaptive=TRUE рдПрдХ рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдФрд░ рд╣рд╛рдБ рд╣рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рд░рд┐рдЧреНрд░реЗрд╢рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдирд╛ рдФрд░ рдЙрди рдкрд░ рд░реЛрд▓ рдХрд░рдирд╛, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдирд╣реАрдВред
рдЗрдирдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдорджрдж рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╕реА ++ рдХреМрд╢рд▓ рдкреВрд░реА рддрд░рд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред :рдкрд╕реАрдирд╛: рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рд╢реМрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╣рдо рд╕реА ++ рдореЗрдВ рдХреЛрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕реА рдореЗрдВред рд╣рд╛рдВ рдпрд╣ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред рдореИрдВрдиреЗ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдлреНрд░реЛрд▓рдореАрди рдкрд░ рдХрд┐рдпрд╛ рдерд╛ред

рдореИрдВ рдХреЛрдб рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдХрдард┐рди рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЕрдм, рдПрдХ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП: рдлреНрд░реЛрд▓рдореАрди (.SD) рдХреЛ рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдо рддреМрд░ рдкрд░, рдЕрдЧрд░ рдЗрдирдкреБрдЯ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рдЬреИрд╕рд╛ рд╣реИ, рддреЛ рдлреНрд░реЛрд▓* рдХреЛ рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

data.table рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ "рд╕рдордп рдЬрд╛рдЧрд░реВрдХ" рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреИрдХреЗрдЬ tsibble ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдкреИрдХреЗрдЬ dplyr рдЖрд╕рдкрд╛рд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ data.table рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЕрдВрдХ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ рд╣реИрдВред

@ywhcuhk рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдВрдЧ рд░рд╣рд╛ рдерд╛ред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрднреА рднреА рд╣рд▓реНрдХреЗ рдкреИрдХреЗрдЬ рд░реЛрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИред рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдПрдВ, рдЗрд╕рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд▓рд╛рдЧреВ рдХрд░рдирд╛/рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ tstibble рдХреЗ рд░реАрдбрдореА рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ ...
рдЗрд╕рдХрд╛ рд╢реАрд░реНрд╖рдХ "рдЯрд┐рдбреА рдЯреЗрдореНрдкреЛрд░рд▓ рдбреЗрдЯрд╛ рдлреНрд░реЗрдореНрд╕" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреЗрдореНрдкреЛрд░рд▓ рдЬреЙрдЗрди рдХреА рдкреЗрд╢рдХрд╢ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП @jangorecki рдзрдиреНрдпрд╡рд╛рджред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрднрд░ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдЬрд┐рд╕ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рдкрдЯрддрд╛ рд╣реВрдВ, рдЙрд╕реЗ "рдкреИрдирд▓ рдбреЗрдЯрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЖрдИрдбреА рдФрд░ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕ рдбреЗрдЯрд╛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рдЬрд╛рдЧрд░реВрдХ" рд╣реИ, рддреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрдЪрд╛рд▓рди, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдордп-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдВрдЪрд╛рд▓рди, рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЬреЛ STATA рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ, рдпрд╣ tsset рдФрд░ xtset рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рдВрдЪрд╛рд▓рди рд╣реИ, рдЬреИрд╕реЗ рд▓реАрдб, рд▓реИрдЧ, рдлрд┐рд▓ рдЧреИрдк, рдЖрджрд┐ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдореЗрдВ "рдЗрдВрдбреЗрдХреНрд╕" рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдмреЗрд╢рдХ, рдпреЗ рдСрдкрд░реЗрд╢рди рдбреЗрдЯрд╛.рдЯреЗрдмрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреИрд╕реЗ shift рдФрд░ by ред рдореИрдВрдиреЗ рдЕрднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ data.table рдореЗрдВ index рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдКрдкрд░ рдХреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЦреЛрдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП ...

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

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

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

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

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

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

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