рдПрд╕рдПрдПрд╕ рдмреЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореВрд▓ рдмрд╛рддреЗрдВред рдкрд╛рда 4. рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдирд╛

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



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ EXCEL рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ C: \ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ \ habrahabr рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдПрд╕рдПрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдП рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдХреЙрд▓рдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рджреЛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ



рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрдкрд░реЛрдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдлрд╝рд╛рдЗрд▓ рд╕реНрдирд┐рдкреЗрдЯ:


рд╣рдо рдПрд╕рдПрд╕реА рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП PROC рдЖрдпрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

options validvarname=v7; proc import datafile="C:\workshop\habrahabr\company.xlsx" dbms=xlsx out=company replace; getnames=yes; run; 

рдорд╛рдиреНрдпрд╡рд░рдирд╛рдо = V7 рд╡рд┐рдХрд▓реНрдк рдПрд╕рдПрдПрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рд╣реА рдлрд╝реАрд▓реНрдб рдирд╛рдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ: рд╕рднреА рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдирд╛рдордХрд░рдг рдЪрд░ рдХреЗ рдирд┐рдпрдо рдкрд╛рда 1 рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

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

 options validvarname=v7; proc import datafile="C:\workshop\habrahabr\company.xlsx" dbms=xlsx out=company (where=(End_Date not is missing)) replace; getnames=yes; run; 

рд╣рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ PROC рдЖрдпрд╛рдд рдХрджрдо рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

Datafile - рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░реНрдг рдкрде рдФрд░ рдирд╛рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
Dbms - рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЖрдЙрдЯ - рдПрд╕рдПрдПрд╕ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рдкрд╣рдЪрд╛рди рдПрдХ рдпрд╛ рджреЛ-рд╕реНрддрд░реАрдп рдПрд╕рдПрдПрд╕ рдирд╛рдо (рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╛рдо рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдирд╛рдо) рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИред
рдмрджрд▓реЗрдВ - рдПрдХ рдореМрдЬреВрджрд╛ SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЧреЗрдЯрдиреЗрдо - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ PROC рдЖрдпрд╛рдд рдЗрдирдкреБрдЯ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдорд╛рдиреЛрдВ рд╕реЗ рдПрд╕рдПрдПрд╕ рдЪрд░ рдирд╛рдо рдмрдирд╛рддрд╛ рд╣реИред

PROC рдЖрдпрд╛рдд рдЪрд░рдг рдЪрд▓рд╛рдПрдБ рдФрд░ рд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:


рдкрд░рд┐рдгрд╛рдореА SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ:

 proc print data=work.company noobs; run; 

PROC PRINT рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЯреБрдХрдбрд╝рд╛:


рдПрд╕рдПрдПрд╕ рдпреВрдИ рдореЗрдВ, рдЖрдк рдЖрдпрд╛рддрд┐рдд рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


SAS рдбреЗрдЯрд╛рд╕реИрдЯ рдкрдврд╝рдирд╛



рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдПрд╕рдПрдЯреА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдЪрд░рдг рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рд╕реЗрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 SET<SAS-data-set(s) <(data-set-options(s) )> > <options>; 

рдпрджрд┐ рдЖрдк SET рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛рд╕реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд┐рдд рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред

SET рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ, рдЖрдк рдХрдИ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛ рд╕реЗрдЯреНрд╕ рдХреЛ рдПрдХ рдХреЗ рддрд╣рдд рдПрдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ (SQL рдореЗрдВ UNION рдХреЗ рд╕рдорд╛рди)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрдЯрд╛ рдЪрд░рдг рдореЗрдВ, рджреЛ SET рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЯреЗрдмрд▓ рдПрдХ рдХреЙрдорди рдХреЙрд▓рдо рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рджреЛ SET рдХрдердиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рдПрд╕рдПрдПрд╕ рдбрд╛рдЯрд╛рд╕реЗрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

 data company1; set company; run; 

рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реИрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛


рдЖрдк PROC рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ ( рдкрд╛рда 2 рджреЗрдЦреЗрдВ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо PROC DATASETS рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдШрдЯрдХ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВрдЧреЗ:

 proc datasets library=work nolist; contents data=company order=varnum; quit; 

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:


Travel_Expenses рдФрд░ рдмрдЬрдЯ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░рдВрддрд░ рдкреНрд░рд╛рд░реВрдк рд╕реЗрдЯ рдХрд░реЗрдВ:

 data company; set company; format Travel_Expenses Budget dollar10.2; run; 

SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 proc datasets library=work nolist; contents data=company order=varnum; quit; 


рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдХреЙрд▓рдо рдмрдирд╛рдирд╛


рд╕рднреА рдПрд╕рдПрдПрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрд╕рдПрдПрд╕ 9.4 рдлрдВрдХреНрд╢рдВрд╕ рдФрд░ рдХреЙрд▓ рд░реВрдЯреАрди рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ : рд╕рдВрджрд░реНрдн, рдкрд╛рдВрдЪрд╡рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг ред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрджрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк PROC FCMP рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд╛рда рдореЗрдВ, рд╣рдо рддреАрди рдХрд╛рд░реНрдпреЛрдВ YRDIF, SUM рдФрд░ CATS рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗред

рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рдЕрдВрддрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо YRDIF рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдПрд╕рдПрдПрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рддрд╛рд░реАрдЦ 01 рдЬрдирд╡рд░реА 1960 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рджрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ ( рдкрд╛рда 1 рджреЗрдЦреЗрдВ )ред рдкреНрд░рд╕реНрддреБрдд рдЖрдВрдХрдбрд╝реЛрдВ рдкрд░, рд╣рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 data company1; set work.company; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); format Travel_Expenses Budget dollar10.2 Lead_Time 3.1; run; 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реАрдб_рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП 3.1 рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рд░рд┐рдкреЛрд░реНрдЯ (!) рд╕реЗ 1 рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рди рдореЗрдВ рдкрд░рд┐рдХрд▓рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЧреЛрд▓ рдХрд┐рдпрд╛ред рд╕реНрд╡рд░реВрдк рдСрдкрд░реЗрдЯрд░ SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдорд╛рди рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ !

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:


рдЕрдЧрд▓рд╛, рд╣рдо рдпрд╛рддреНрд░рд╛ рдЦрд░реНрдЪреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХреА рд▓рд╛рдЧрдд рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:

 data company1; set work.company; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); Cost=Budget-Travel_Expenses; format Cost Travel_Expenses Budget dollar10.2 Lead_Time 3.1; run; 

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:


рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЦрд╛рддреЗ рдХреА рдпрд╛рддреНрд░рд╛ рдХреЗ рдЦрд░реНрдЪ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд╛рдо рдХреА рд▓рд╛рдЧрдд рдХреА рдЧрдгрдирд╛ рдХреАред рд╣рдорд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдкрд▓рдмреНрдз рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рдпрджрд┐ рдХрд┐рд╕реА рдПрдХ рдЪрд░ (рдмрдЬрдЯ рдпрд╛ Travel_Expenses) рдореЗрдВ рдПрдХ рд▓рд╛рдкрддрд╛ рдореВрд▓реНрдп рдерд╛, рддреЛ рдкрд░рд┐рдгрд╛рдо "рдорд┐рд╢рди" рдерд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдПрдХ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗрдЯ рдмрдирд╛рдПрдБ:

 data test; input Budget Travel_Expenses; datalines; 12345 233 . 345 12543 . ; 

рд╡реИрд░рд┐рдПрдмрд▓ рдмрдЬрдЯ Travel_Expenses рдХреЗ рдЕрдВрддрд░ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ

 data test; set test; value=Budget-Travel_Expenses; run; 

рдЗрд╕ рдХрджрдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо:


рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк SUM рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрдгрдирд╛рддреНрдордХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реНрд░реЗрдгреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╡рд░реНрдгрдирд╛рддреНрдордХ рдЖрдБрдХрдбрд╝реЗ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдкрддрд╛ рдорд╛рдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред

SUM рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрдирд╛:

 data test; set test; value=sum(Budget,-Travel_Expenses); run; 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрджрдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


рддреАрд╕рд░рд╛ рдкрд░рд┐рдХрд▓рд┐рдд рд╕реНрддрдВрдн рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдИрдореЗрд▓ рдкрддрд╛ рд╣реИред рдпрд╣ рдХреЙрд▓рдо Manager_FirstName, Manager_LastName рдФрд░ рдорд╛рди harocom рд╕реЗ "рдЕрд╕реЗрдВрдмрд▓" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдЖрдк рдкрд╛рда рдорд╛рдиреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CATS рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 data company1; set work.company; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); Cost=Budget-Travel_Expenses; Email=cats(Manager_FirstName, '.',Manager_LastName, '@habr.com'); format Cost Travel_Expenses Budget dollar10.2 Lead_Time 3.1; run; 

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛:


рдЖрдЗрдП рдмрдирд╛рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╡рд┐рд╡рд░рдгрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:

 proc contents data=work.company1 varnum; run; 

рд╕рдВрднрд╛рд▓реЗрдВ рдЯреБрдХрдбрд╝рд╛:


рдИрдореЗрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рд▓рдВрдмрд╛рдИ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ 200 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ; рдпрд╣ CATS рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рдВрдмрд╛рдИ рд╣реИред рдпрджрд┐ рд╣рдо рдЪрд░ рдкреНрд░рдмрдВрдзрдХ_FirstName рдФрд░ Manager_LastName рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдИрдореЗрд▓ рдЪрд░ рдХреЗ рд▓рд┐рдП 8 + 6 + рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ '@ habr.com' рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдпрд╛рдиреА рдПрдХ рдФрд░ 9 рдмрд╛рдЗрдЯреНрд╕, рдХреБрд▓ 23. рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреНрдпреЛрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП? рд╕рднреА рд▓рд╛рдкрддрд╛ рд╡рд░реНрдг рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

рдИрдореЗрд▓ рдЪрд░ рдХреА рд▓рдВрдмрд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ LENGTH рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 data company1; set work.company; length Email $23; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); Cost=Budget-Travel_Expenses; Email=cats(Manager_FirstName, '.',Manager_LastName, '@habr.com'); format Cost Travel_Expenses Budget dollar10.2 Lead_Time 3.1; run; 

рдЯреБрдХрдбрд╝рд╛ рд╕рдВрднрд╛рд▓рдирд╛


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд▓реАрдб_рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдХреЙрд▓рдо рдмрдирд╛рдПрдБ:

  1. рдпрджрд┐ рд▓реАрдб_рдЯрд╛рдЗрдо рдЪрд░ рдХрд╛ рдорд╛рди 1 рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдбрд┐рдЯреЗрд▓ рдХреЙрд▓рдо рдХрд╛ рдореВрд▓реНрдп 1 рд╡рд░реНрд╖ рд╕реЗ рдХрдо рд╣реИред
  2. рдпрджрд┐ рд▓реАрдб_рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди рд╕реАрдорд╛ рд╕рд╣рд┐рдд 1 рд╕реЗ 2 рддрдХ рд╣реИ, рддреЛ рдбрд┐рдЯреЗрд▓ рдХреЙрд▓рдо рдХрд╛ рдорд╛рди 1-2 рд╕рд╛рд▓ рд╣реИред
  3. рдпрджрд┐ рд▓реАрдб_рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди 2 рдХреЛ рдЫреЛрдбрд╝рдХрд░ 3 рд╕реЗ 3 рддрдХ рд╣реИ, рддреЛ рдбрд┐рдЯреЗрд▓ рдХреЙрд▓рдо рдХрд╛ рдорд╛рди 2-3 рд╕рд╛рд▓ рд╣реИред
  4. рдпрджрд┐ рд▓реАрдб_рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди 3 рдХреЛ рдЫреЛрдбрд╝рдХрд░ 3 рд╕реЗ 4 рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реИ, рддреЛ рдбрд┐рдЯреЗрд▓ рдХреЙрд▓рдо рдХрд╛ рдорд╛рди 3-4 рд╕рд╛рд▓ рд╣реИред
  5. рдпрджрд┐ рд▓реАрдб_рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди 4 рдХреЛ рдЫреЛрдбрд╝рдХрд░ 4 рд╕реЗ 5 рддрдХ рд╣реИ, рддреЛ рдбрд┐рдЯреЗрд▓ рдХреЙрд▓рдо рдореЗрдВ 4-5 рд╕рд╛рд▓ рдХрд╛ рдорд╛рди рд╣реИред
  6. рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рд╡рд░рдг рд╕реНрддрдВрдн рдХрд╛ рдорд╛рди 5 рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

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

  1. If-then-else
  2. рдИрдПрд▓рдПрд╕рдИ рдЖрдИрдПрдл
  3. рдЪрдпрди-рдХрдм

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

 data company1; set work.company; length Email $23; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); Cost=Budget-Travel_Expenses; Email=cats(Manager_FirstName, '.',Manager_LastName, '@habr.com'); format Cost Travel_Expenses Budget dollar10.2 Lead_Time 3.1; if Lead_Time<1 then detail='less than a year'; else if Lead_Time=>1 and Lead_Time<=2 then detail='1-2 years'; else if Lead_Time>2 and Lead_Time<=3 then detail='2-3 years'; else if Lead_Time>3 and Lead_Time<=4 then detail='3-4 years'; else if Lead_Time>4 and Lead_Time<=5 then detail='4-5 years'; else detail='above 5 years'; run; 

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


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

 data company1; set work.company; length Email $23; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); Cost=Budget-Travel_Expenses; Email=cats(Manager_FirstName, '.',Manager_LastName, '@habr.com'); format Cost Travel_Expenses Budget dollar10.2 Lead_Time 3.1; if Lead_Time<1 then detail='less than a year'; else if Lead_Time=>1 and Lead_Time<=2 then detail='1-2 years'; else if Lead_Time>2 and Lead_Time<=3 then detail='2-3 years'; else if Lead_Time>3 and Lead_Time<=4 then detail='3-4 years'; else if Lead_Time>4 and Lead_Time<=5 then detail='2-3 years'; else detail='above 5 years'; if detail ne 'above 5 years'; run; 

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪрдпрдирд╛рддреНрдордХ IF рдХрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ:

 if detail contains 'above 5 years'; 

рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:


SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред


рдЪрд░ рдкреНрд░рдмрдВрдзрдХ_FirstName рдФрд░ Manager_LastName рдирдП SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛ DROP рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ DROP рдСрдкрд░реЗрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 data company1 (drop=Manager_FirstName Manager_LastName); set work.company; length Email $23; Lead_Time=yrdif(Start_Date, End_Date, 'actual'); Cost=Budget-Travel_Expenses; Email=cats(Manager_FirstName, '.',Manager_LastName, '@habr.com'); format Cost Travel_Expenses Budget dollar10.2 Lead_Time 3.1; if Lead_Time<1 then detail='less than a year'; else if Lead_Time=>1 and Lead_Time<=2 then detail='1-2 years'; else if Lead_Time>2 and Lead_Time<=3 then detail='2-3 years'; else if Lead_Time>3 and Lead_Time<=4 then detail='3-4 years'; else if Lead_Time>4 and Lead_Time<=5 then detail='2-3 years'; else detail='above 5 years'; if detail ne 'above 5 years'; run; 

рд╣рдордиреЗ рджрд┐рдП рдЧрдП SAS рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рджрд┐рдП рдЧрдП рд╢рд░реНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ


рдПрдХ рдбреЗрдЯрд╛ рдЪрд░рдг рдореЗрдВ, рдЖрдк рдХрдИ рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдмрдирд╛рдПрдБред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЗрд╢ рдХреЙрд▓рдо рдореЗрдВ рдХреМрди рд╕реЗ рдорд╛рди рд╣реИрдВ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк PROC FREQ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 proc freq data=company1; table Country /nocum nopercent; run; 

рдпрд╣ рдЪрд░рдг рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ = рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдХрдВрдЯреНрд░реА рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдорд╛рди рдХрд┐рддрдиреА рдмрд╛рд░ рдЖрддрд╛ рд╣реИред

рдЗрд╕ рдЪрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:


рдЗрд╕рд▓рд┐рдП, рд╣рдо OUTPUT рдСрдкрд░реЗрдЯрд░ рдФрд░ рд╕рд╢рд░реНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдбреЗрдЯрд╛ рдЪрд░рдг рдореЗрдВ рджреЛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдмрдирд╛рдПрдВрдЧреЗ:

 data US AU; set work.company1; if Country='AU' then output AU; if Country='US' then output US; run; 

рдХреЛрдб рдЪрд▓рд╛рдПрдБ рдФрд░ рд▓реЙрдЧ рджреЗрдЦреЗрдВ:


рдпрд╣ рдПрд╕рдПрдПрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЖрдкрдХреЛ MERGE рдФрд░ SET рдХрдердиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдПрдБрдЧреЗред

рдФрд░ рдПрдХ рдкреАрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдПрд╕рдПрдПрд╕ рдмреЗрд╕ рд╕рдмрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ:

рд▓реЗрдЦ рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ:

  1. рдПрд╕рдПрдПрд╕ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВред рдкрд╛рда резред
  2. рдПрд╕рдПрдПрд╕ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВред рдкрд╛рда 2. рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕
  3. рдПрд╕рдПрдПрд╕ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВред рдкрд╛рда 3. рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдирд╛ред
  4. рдЖрдкрдиреЗ рдЕрднреА рдЪреМрдерд╛ рд╕рдмрдХ рд╕реАрдЦрд╛ рд╣реИред

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

рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА! рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЖрдк рдХреМрди рд╕реЗ рдЕрдиреНрдп рд╡рд┐рд╖рдп рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

Source: https://habr.com/ru/post/hi426765/


All Articles