R рдПрдХ рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ рднрд╛рд╖рд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рдмрд┐рд▓реНрдХреБрд▓ рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдмрджрд▓реЗ рдореЗрдВ, рдЖрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдПрдХ рд╡рд░реНрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдЖрд╕рдкрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рд╣рдо рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдШрд┐рд░реЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╡рд░реНрдЧ рдЧреБрдг рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рд╕рд╛рдордЧреНрд░реА
рд╡рд░реНрдЧ рдЧреБрдг
рдЖрд░ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рднреА рдПрдХ рд╡рд░реНрдЧ рдХреА рд╣реИред рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕рдореЗрдВ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдореВрд╣ рд╣реЛрддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (OOP) рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рдореВрд╣реЛрдВ рдФрд░ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рд╕рдорд╛рди рд╕рдВрдпреЛрдЬрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдПрдХ рд╡реЗрдХреНрдЯрд░ R рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд░реНрдЧ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓рдВрдмрд╛рдИ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реЗрдХреНрдЯрд░ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рд▓реЗрдВрдЧреЗред
length(letters)
[1] 26
length
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рд╡реЗрдХреНрдЯрд░ рдорд┐рд▓реАред рдЕрдм рдЖрдЗрд░рд┐рд╕ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрдВрдХреНрд╢рди рдореЗрдВ рдЙрд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
length(iris)
[1] 5
length
рдлрд╝рдВрдХреНрд╢рди, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ, рдХреЙрд▓рдо рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдЯреЗрдмрд▓реНрд╕ рдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рд╕рдВрдкрддреНрддрд┐, рдЖрдпрд╛рдо рднреА рд╣реИред
dim(iris)
[1] 150 5
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ dim
рдХрд╛рд░реНрдп рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдЗрд░рд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 150 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ 5 рд╕реНрддрдВрдн рд╣реИрдВред
рдмрджрд▓реЗ рдореЗрдВ, рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдХреЛрдИ рдЖрдпрд╛рдо рдирд╣реАрдВ рд╣реИред
dim(letters)
NULL
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕рдореВрд╣ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдп
R рдХреЗ рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ: print
, plot
, summary
, рдЖрджрд┐ред рдпреЗ рдХрд╛рд░реНрдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, plot
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реЗрдВред рдЖрдЗрд░рд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЗрд╕рдХреЗ рдореБрдЦреНрдп рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
plot(iris)
рдкрд░рд┐рдгрд╛рдо:

рдЕрдм рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рд╡рд╛рд▓реЗ 100 рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЛ plot
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
plot(rnorm(100, 50, 30))
рдкрд░рд┐рдгрд╛рдо:

рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд░рд╛рдл рдорд┐рд▓реЗ, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд╣рд╕рдВрдмрдВрдз рдореИрдЯреНрд░рд┐рдХреНрд╕, рджреВрд╕рд░реЗ рдореЗрдВ, рддрд┐рддрд░ рдмрд┐рддрд░ рднреВрдЦрдВрдб, рдЬрд┐рд╕ рдкрд░ рдПрдХреНрд╕-рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЕрд╡рд▓реЛрдХрди рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╡рд╛рдИ-рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдореВрд▓реНрдпред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, plot
рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдУрдУрдкреА рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЖрдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреЗ рд╡рд░реНрдЧ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдЖрд╡рд░рдг рд╣реИред рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрди рдХрдорд╛рдВрдб рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
body(plot)
UseMethod("plot")
body
рдХрдорд╛рдВрдб R рдмреЙрдбреА рдХреЛ R рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЙрдбреА рдлрдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ UseMethod("plot")
рдХрдорд╛рдВрдб рд╣реЛрддрд╛ рд╣реИред
рдпрд╛рдиреА plot
рдлрд╝рдВрдХреНрд╢рди, рдмрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рдХрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд░реНрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреА рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджреЗрдЦреЗрдВред
methods(plot)
[1] plot.acf* plot.data.frame* plot.decomposed.ts* [4] plot.default plot.dendrogram* plot.density* [7] plot.ecdf plot.factor* plot.formula* [10] plot.function plot.hclust* plot.histogram* [13] plot.HoltWinters* plot.isoreg* plot.lm* [16] plot.medpolish* plot.mlm* plot.ppr* [19] plot.prcomp* plot.princomp* plot.profile.nls* [22] plot.raster* plot.spec* plot.stepfun [25] plot.stl* plot.table* plot.ts [28] plot.tskernel* plot.TukeyHSD*
рдкрд░рд┐рдгрд╛рдо рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓реЙрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ 29 рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмреАрдЪ рдкреНрд▓реЙрдЯ рд╣реИредрдбрдлреЙрд▓реНрдЯ рд╣реИ , рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╡рд░реНрдЧ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
methods
рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЙрди рд╕рднреА рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╡рд┐рдзрд┐ рд╣реЛред
methods(, "data.frame")
[1] $<- [ [[ [[<- [5] [<- aggregate anyDuplicated as.data.frame [9] as.list as.matrix by cbind [13] coerce dim dimnames dimnames<- [17] droplevels duplicated edit format [21] formula head initialize is.na [25] Math merge na.exclude na.omit [29] Ops plot print prompt [33] rbind row.names row.names<- rowsum [37] show slotsFromS3 split split<- [41] stack str subset summary [45] Summary t tail transform [49] type.convert unique unstack within
S3 рдХреНрд▓рд╛рд╕ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ
рдЖрд░ рдореЗрдВ рдХрдИ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЖрдк рдЦреБрдж рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЗрдВ рд╕реЗ рдПрдХ S3 рд╣реИред
рдпрд╣ рд╡рд░реНрдЧ рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдХрдХреНрд╖рд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдг рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдкрдиреА рдЦреБрдж рдХреА рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕реЗ рдПрдХ рдХрдХреНрд╖рд╛ рдирд╛рдо рджреЗрдВред
"рдж рдЖрд░реНрдЯ рдСрдл рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрди рдЖрд░" рдкреБрд╕реНрддрдХ рдХрд░реНрдордЪрд╛рд░реА рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддреА рд╣реИ, рдЬреЛ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдмрдирд╛ рджрд┐рдпрд╛ред
# employee1 <- list(name = "Oleg", surname = "Petrov", salary = 1500, salary_datetime = Sys.Date(), previous_sallary = NULL, update = Sys.time()) # class(employee1) <- "emp"
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛, рдЬреЛ рдЕрдкрдиреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ:
- рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдирд╛рдо
- рдХрд░реНрдордЪрд╛рд░реА рдЙрдкрдирд╛рдо
- рд╡реЗрддрди
- рд╡рд╣ рд╕рдордп рдЬрдм рд╡реЗрддрди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
- рдкрд┐рдЫрд▓рд╛ рд╡реЗрддрди
- рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрдВрддрд┐рдо рдЕрджреНрдпрддрди рдХреА рддрд┐рдерд┐ рдФрд░ рд╕рдордп
рдЙрд╕рдХреЗ рдмрд╛рдж, class(employee1) <- "emp"
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде class(employee1) <- "emp"
рд╣рдо рдХреНрд▓рд╛рд╕ рдПрдореНрдк рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред
рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рдореНрд░рд╛рдЬреНрдп рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП , рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдореНрдкрд╛рдпрд░ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрдВрдХреНрд╢рди рдХреЛрдб # create_employee <- function(name, surname, salary, salary_datetime = Sys.Date(), update = Sys.time()) { out <- list(name = name, surname = surname, salary = salary, salary_datetime = salary_datetime, previous_sallary = NULL, update = update) class(out) <- "emp" return(out) } # emp create_employee employee1 <- create_employee("Oleg", "Petrov", 1500) # class(employee1)
[1] "emp"
рдХрд╕реНрдЯрдо S3 рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛рд░реНрдп
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдирд╛ рд╡рд░реНрдЧ рд╕рд╛рдореНрд░рд╛рдЬреНрдп рдмрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреНрдпреЛрдВ рдмрдирд╛рдИ рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдмрдирд╛рдП рдЧрдП рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рдорд╛рд░реЛрд╣ [рдХреЗ рд▓рд┐рдП "[<-.emp" <- function(x, i, value) { if ( i == "salary" || i == 3 ) { cat(x$name, x$surname, "has changed salary from", x$salary, "to", value) x$previous_sallary <- x$salary x$salary <- value x$salary_datetime <- Sys.Date() x$update <- Sys.time() } else { cat( "You can`t change anything except salary" ) } return(x) }
[] рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди "[[<-.emp" <- function(x, i, value) { if ( i == "salary" || i == 3 ) { cat(x$name, x$surname, "has changed salary from", x$salary, "to", value) x$previous_sallary <- x$salary x$salary <- value x$salary_datetime <- Sys.Date() x$update <- Sys.time() } else { cat( "You can`t change anything except salary" ) } return(x) }
рдмрдирд╛рддреЗ рд╕рдордп, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣рдореЗрд╢рд╛ рдЙрджреНрдзреГрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ: "[<-. " / "[[<-. "
ред рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ 3 рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рд╣реИрдВред
- x - рд╡рд╣ рд╡рд╕реНрддреБ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
- i - рд╡рд╕реНрддреБ рдХреЗ рддрддреНрд╡ рдХрд╛ рдирд╛рдо / рд╕реВрдЪрдХрд╛рдВрдХ (рдирд╛рдо, рдЙрдкрдирд╛рдо, рд╡реЗрддрди, рд╕реИрд▓рд░реА_рдбрд╛рдЗрдордЯрд╛рдЗрдо, рдкрд┐рдЫрд▓реЗ_рд╕рд╛рд▓, рдЕрджреНрдпрддрди);
- рдореВрд▓реНрдп - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдпред
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдЖрдЧреЗ рдЖрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рд╡реЗрддрди ( рд╡реЗрддрди рддрддреНрд╡, рдЬрд┐рд╕рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ 3 рд╣реИ) рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рдЗрд╕рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рдореИрдВ рдПрдХ if ( i == "salary" || i == 3 )
check if ( i == "salary" || i == 3 )
рд▓рд┐рдЦрддрд╛ рд╣реВрдВ if ( i == "salary" || i == 3 )
ред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреНрдп рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ "You can't change anything except salary"
рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдЬрдм рд╡реЗрддрди рддрддреНрд╡ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдирд╛рдо рдФрд░ рдЙрдкрдирд╛рдо, рдЙрд╕рдХрд╛ рд╡рд░реНрддрдорд╛рди рдФрд░ рдирдпрд╛ рд╡реЗрддрди рд╕реНрддрд░ рд╣реЛрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╡реЗрддрди рдкрд┐рдЫрд▓реЗ_рд╕рд╛рд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡реЗрддрди рдХреЛ рдПрдХ рдирдпрд╛ рдореВрд▓реНрдп рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╕реИрд▓рд░реА_рдбрд╛рдЗрдордЯрд╛рдЗрдо рдФрд░ рдЕрдкрдбреЗрдЯ рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рдХреЗ рдореВрд▓реНрдп рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдЕрдм рдЖрдк рд╡реЗрддрди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
employee1["salary"] <- 1750
Oleg Petrov has changed salary from 1500 to 1750
рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рддрд░реАрдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рдерд╛ рдХрд┐ рдЖрд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред
рдЖрдк рдЕрдкрдиреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдореМрдЬреВрджрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ print
ред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдкреБрдХрд╛рд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рд░реНрдп рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдПрдореНрдкрд╛рдпрд░ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
$name [1] "Oleg" $surname [1] "Petrov" $salary [1] 1750 $salary_datetime [1] "2019-05-29" $previous_sallary [1] 1500 $update [1] "2019-05-29 11:13:25 EEST"
рдкреНрд░рд┐рдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВред
print.emp <- function(x) { cat("Name:", x$name, x$surname, "\n", "Current salary:", x$salary, "\n", "Days from last udpate:", Sys.Date() - x$salary_datetime, "\n", "Previous salary:", x$previous_sallary) }
рдЕрдм рдкреНрд░рд┐рдВрдЯ рдлрдВрдХреНрд╢рди рд╣рдорд╛рд░реЗ рдПрдореНрдкрд╛рдпрд░ рдХреНрд▓рд╛рд╕ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
employee1
Name: Oleg Petrov Current salary: 1750 Days from last udpate: 0 Previous salary: 1500
рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬреЗрдиреЗрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ UseMethod
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
# get_salary <- function(x, ...) { UseMethod("get_salary") }
рдЕрдм рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реАрдХреЗ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдПрдХ рдПрдореНрдкрд╛рдпрд░ рдХреНрд▓рд╛рд╕ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЕрдиреНрдп рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред
# emp get_salary.emp <- function(x) x$salary # get_salary.default <- function(x) cat("Work only with emp class objects")
рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдХреЛрдИ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рд╣рд░ рдмрд╛рд░ рдЪрд▓рд╛рдИ рдЬрд╛рдПрдЧреАред
get_salary(employee1)
[1] 1750
get_salary(iris)
Work only with emp class objects
рд╡рд┐рд░рд╛рд╕рдд
рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрддреЗ рд╕рдордп рдПрдХ рдФрд░ рд╢рдмреНрдж рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛ред

рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рдкрд░рд┐рд╡рд╣рди рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдЗрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рд╣реИ - рдЖрдВрджреЛрд▓рди, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрддрд┐ред рдлрд┐рд░ рднреА, рд╕рднреА 6 рд╡рд╕реНрддреБрдУрдВ рдХреЛ рддреАрди рдЙрдкрд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рднреВрдорд┐, рдЬрд▓ рдФрд░ рд╡рд╛рдпреБред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрд╡рд░реНрдЧ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рднреА рд╣реЛрдВрдЧреАред рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рджреВрд░рд╕реНрде рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рджреВрд░рд╕реНрде_рдХрдо рдХреЗ рдПрдХ рдЕрд▓рдЧ рдЙрдкрд╡рд░реНрдЧ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдЧреА: рдирд┐рд╡рд╛рд╕ рдХрд╛ рд╢рд╣рд░ред
# employee2 <- list(name = "Ivan", surname = "Ivanov", salary = 500, salary_datetime = Sys.Date(), previous_sallary = NULL, update = Sys.time(), city = "Moscow") # remote_emp class(employee2) <- c("remote_emp", "emp") # class(employee2)
[1] "remote_emp" "emp"
рдПрдХ рд╡рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдЙрдкрд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдореВрд▓ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдЖрддрд╛ рд╣реИред
рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ , рдЕрднрд┐рднрд╛рд╡рдХ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╕рднреА рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдп рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрдкрдиреЗ рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
# remote_emp employee2
Name: Ivan Ivanov Current salary: 500 Days from last udpate: 0 Previous salary:
# salary remote_emp get_salary(employee2)
[1] 500
рд▓реЗрдХрд┐рди рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рддрд░реАрдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
# salary remote_emp get_salary.remote_emp <- function(x) { cat(x$surname, "remote from", x$city, "\n") return(x$salary) }
# salary remote_emp get_salary(employee2)
Ivanov remote from Moscow [1] 500
рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рд░рд┐рдореЛрдЯ_рдкреЙрдЗрдВрдЯ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ рдФрд░ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЦреБрдж рдХреА S3 рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдЬреЛ рдЕрднреА R рднрд╛рд╖рд╛ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╡реЗ rfacebookstat рдкреИрдХреЗрдЬ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдо рдЖрдПред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлреЗрд╕рдмреБрдХ рдПрдкреАрдЖрдИ рдореЗрдВ, рдПрдХреНрд╢рди_рдмреНрд░реЗрдХрдбрд╛рдЙрди рдкреИрд░рд╛рдореАрдЯрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред
рдРрд╕реЗ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ JSON рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИ:
{ "action_name": "like", "action_type": "post_reaction", "value": 6 } { "action_type": "comment", "value": 4 }
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХреНрд╢рди_рдмреНрд░реЗрдХрдбрд╛рдЙрди рдХреЗ рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдирд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо S3 рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдЬрдм рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдПрдкреАрдЖрдИ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА, рдФрд░ рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд╡рд┐рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА рдЬрд┐рд╕рдиреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ S3method
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ S3method
рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
S3method(_,) S3method("[<-",emp) S3method("[[<-",emp) S3method("print",emp)
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдкрд╣рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ , рдЖрд░ 3 рдореЗрдВ, рдПрд╕ 3 рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рд╣реИрдВ: рдПрд╕ 4 , рдЖрд░ 5 ( рдЖрд░рд╕реА ), рдЖрд░ 6 ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ OOP рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдлрд┐рд░ рднреА, рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реНрддрд░ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд┐рддрд╛рдмреЗрдВ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдлрд┐рд░ рд╣реЗрдбрд▓реА рд╡рд┐рдХрдо рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ, рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреА рдкреБрд╕реНрддрдХ "рдПрдбрд╡рд╛рдВрд╕реНрдб рдЖрд░" рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ред
рдЕрдЧрд░ рдЕрдЪрд╛рдирдХ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдореБрдЭреЗ S3 рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдпрд╛рдж рдЖрддреА рд╣реИ, рдЕрдЧрд░ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ рддреЛ рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред