您的位置:首页 > 编程语言

SAS 代码合集

2016-02-29 10:34 225 查看
/* Time Series Regression */
proc sort data=exports.cigar;
by state year;
run;

Title 'Fix One Effect: State Year';
proc tscsreg data=exports.cigar;
ID state year;
model sales=price pop pop16 cpi ndi pimin/fixone;
run;

Title 'Fix One Effect:  Year  State';
proc tscsreg data=exports.cigar;
ID  state year  ;
model sales=price pop pop16 cpi ndi pimin/ranone;
run;

/* Data Tranpose */
proc sort data=temp;
by  campaign_name country_cd ;
quit;

proc transpose data=temp out=trans_temp(drop=_label_  _name_);

ID country_cd;
var  count;
by campaign_name  ;
quit;

options missing=0;

/* Data Computab */
ods _all_ close ;

data bookings;
input reptdate date9. la atl ch ny;
format reptdate date9.;
datalines;
01JAN1989 100 110 120 130
01FEB1989 140 150 160 170
01MAR1989 180 190 200 210
01APR1989 220 230 240 250
01MAY1989 260 270 280 290
01JUN1989 300 310 320 330
01JUL1989 340 350 360 370
01AUG1989 380 390 400 410
01SEP1989 420 430 440 450
01OCT1989 460 470 480 490
01NOV1989 500 510 520 530
01DEC1989 540 550 560 570
;

proc computab data=bookings cspace=1 cwidth=6 out=result;
columns qtr1 pct1 qtr2 pct2 qtr3 pct3 qtr4 pct4;
columns qtr1-qtr4 / format=6.;
columns pct1-pct4 / format=6.2;
rows la atl ch ny total;
/* column selection */
_col_ = qtr( reptdate ) * 2 - 1;
/* copy qtr column values temporarily into pct columns */
colcopy:
pct1 = qtr1;
pct2 = qtr2;
pct3 = qtr3;
pct4 = qtr4;
/* calculate total row for all columns */
/* calculate percentages for all rows in pct columns only */
rowcalc:
total = la + atl + ch + ny;
if mod( _col_, 2 ) = 0 then do;
la = la / total * 100;
atl = atl / total * 100;
ch = ch / total * 100;
ny = ny / total * 100;
total = 100;
end;
run;

proc transpose  data=result out=temp;
format pct1-pct4 4.2;

/* Filepath Check */
%let filepath=\\Hqdellsas04\exports\APJ\EM\Test_WEI\;

%macro test(filepath);
%local myfile;
%let rc=%sysfunc(filename(myfile,&filepath));
%put rc=&rc;
%put myfile=&myfile;

%let rc=%sysfunc(fopen(&myfile));
%if &rc %then %put rc=&rc File is not open;
%put myfile=&myfile;

%let rc=%sysfunc(fclose(&rc));
%put rc=&rc;
%put myfile=&myfile;

%mend test;

%macro filepathcheck(path);
%let rc=%sysfunc(filename(myfile, &path));
%put rc=&rc;

%if  NOT %sysfunc(fexist(&myfile)) %then %do;
data _null_;
call symput('MAMsg', 'Filepath Not Exists');  call symput('SYSCC', 1012);run;
%end;

%let index= %sysfunc(compress(%sysfunc(substr(&filepath, %sysfunc(length(&filepath)),1))));
%put index=&index;

%if &index=\ %then
%put The last character is \;
%else %do;
%put The last character is not "\";
data _null_;
call symput('MAMsg', 'Filepath is not ending with \');  call symput('SYSCC', 1012);
%abort ;
run;
%end;

%mend filepathcheck;

/*  ODS Output  */
options nodate pageno=1 linesize=80 pagesize=60;

LIBNAME MATABLES BASE "G:\MADATA\contexts\emea_apj\matables" ;
LIBNAME export BASE "G:\MADATA\contexts\emea_apj\exports\APJ" ;

data export.test;
format dim_plat_person_id F20.;
stop;
run;

ods trace on / listing;
ods output Base.Datasets.Members=output;

proc datasets library=export  details ;
quit;

ods output close;
ods trace off;

/*  PWEncode  */
LIBNAME smb_prod NETEZZA DATABASE=smb_prod_view_ea SERVER=hqdellnz06 AUTHDOMAIN="hqdellnz06" DBCONINIT='SET SERIALIZABLE = FALSE;';

%let date=%sysfunc(date());
%put date=&date ;
%let today=%sysfunc(putn(&date, yymmddN8.));
%put today=&today ;

LIBNAME export BASE "G:\MADATA\contexts\emea_apj\exports\APJ" ;
filename myfile 'G:\MADATA\contexts\emea_apj\exports\APJ\wzhao.txt' ;

proc pwencode in='123456!!' out= myfile ;
run;

FILENAME pwfile 'G:\MADATA\contexts\emea_apj\exports\APJ\wzhao.txt' ;
DATA temp;
INFILE pwfile OBS=1 Length=l;
INPUT @1 myPW $varying1024. l ;
CALL SYMPUT('myPW', SUBSTR(myPW,1,l));
RUN;

%put mypw=&myPW ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: