42
第 15 第 第第第第 第第第第第第第第第第 第第第 [email protected]. cn

15数据管理

  • Upload
    peng-wu

  • View
    220

  • Download
    1

Embed Size (px)

Citation preview

  • 15 [email protected]

  • SAS

    SAS

  • SASSASBYBY

    PROC SORT ; BY variable-1 ;

  • PROC SORT PROC SORT ;

    Sheet1

    DATA=

    OUT=

    ASCII

    EBCDIC

    DANISH

    FINNISH

    NORWEGIAN

    SWEDISH

    NATIONAL

    SORTSEQ=

    REVERSE

    EQUALS

    NOEQUALS

    NODUPKEY

    NODUPRECS

    SORTSIZE=

    FORCE

    TAGSORT

    Sheet2

    Sheet3

  • FORCEOUT=FORCEOUT=FORCE OBS= FIRSTOBS= DATA=WHERS= PROC SORT WHERE

  • BY BY variable-1;

    PROC SORTBYBYBYSORTBYDESCENDING

  • 15.1 data a;set fdata.a1a0001;year=year(date);qtr=qtr(date);month=month(date);proc sort data=a out=b;by year qtr month;run;A1A0001

  • 15.2 proc sort data= fdata.a600001 out=a; by descending clpr; proc print data=a (obs=3) noobs; var date clpr; run; CLPR

  • 15.3 BYoptions nodate pageno=1 linesize=80 pagesize=60;proc sort data=fdata.account out=towns nodupkey;by town;run;proc print data=towns;var town company debt accountnumber;title 'Towns of Customers with Past-Due Accounts';run;

  • SAS

  • PROC TRANSPOSE ; BY variable-1 ; COPY variable(s); ID variable; IDLABEL variable; VAR variable(s);

  • Sheet1

    BY

    COPY

    ID

    IDLABEL

    VAR

    Sheet2

    Sheet3

  • PROC TRANSPOSE PROC TRANSPOSE ;

    Sheet1

    DATA=

    OUT=

    PREFIX=

    NAME=

    LABEL=

    LET

    Sheet2

    Sheet3

  • VARID VAR

    VAR variable-list;VAR

    VARVARCOPYBY

  • ID

    ID variable;IDIDLETIDBYBYIDIDSAS+,-.P,ND(_)IDID

  • 15.4 IDproc transpose data=fdata.class out=a let;id NAME;proc print;run;CLASSNAMEAA_NAME_.proc transpose data=fdata.R_MONTH OUT=a let;id DATE;proc print;run;R_MONTHDATEAA_NAME__LABEL_.

  • 15.5 BYIDproc transpose data=fdata.class out=a let;id sex;proc print;run;

    Sheet1

    Obs_NAME_FM

    1Age1515

    2Height66.566.5

    3Weight112112

    Sheet2

    Sheet3

  • proc transpose data=fdata.class out=a let;id sex;by sex;proc print;run;

    Sheet1

    ObsSex_NAME_FM

    1FAge15.

    2FHeight66.5.

    3FWeight112.

    4MAge.15

    5MHeight.66.5

    6MWeight.112

    Sheet2

    Sheet3

  • proc transpose data=fdata.class out=a;var name height weight; copy sex age;proc print;run;

    proc sort data=fdata.class out=a;by name;proc transpose data=a let;by name;proc print;run;

  • 15.6

    options nodate pageno=1 linesize=80 pagesize=40; proc transpose data=fdata.score out=idnumber name=Test prefix=sn; id studentid; run;

    proc print data=idnumber noobs; title 'Student Test Scores'; run;

  • 15.7

    options nodate pageno=1 linesize=80 pagesize=40;proc transpose data=fdata.score out=idlabel name=Testprefix=sn;id studentid;idlabel student;run;

    proc print data=idlabel label noobs;title 'Student Test Scores';run;

  • 15.8 BY

    options nodate pageno=1 linesize=80 pagesize=40;proc transpose data=fdata.fishdata out=fishlength(rename=(col1=Measurement));var length1-length4;by location date;run;

    proc print data=fishlength noobs;title 'Fish Length Data for Each Location and Date';run;

  • 15.9 ID

    options nodate pageno=1 linesize=64 pagesize=40;proc transpose data=fdata.stocks out=close let; by company;id date;run;proc print data=close noobs;title 'Closing Prices for Horizon Kites and SkyHi Kites';run;

  • 15.10 options nodate pageno=1 linesize=80 pagesize=40;data split;set fdata.weights;array s{7} s1-s7;subject + 1;do Time=1 to 7;strength=s{time};output;end;drop s1-s7;run;proc print data=split(obs=15) noobs;title 'SPLIT Data Set';title2 'First 15 Observations Only';run;/**/proc transpose data=split out=totsplit prefix=Str;by program subject;copy time strength; var strength;run;proc print data=totsplit(obs=15) noobs;title 'TOTSPLIT Data Set';title2 'First 15 Observations Only';run;

  • SASOUTPUTSASLOGSASPRINTTOSASPRINTTO SAS SAS SAS

  • PRINTTO PROC PRINTTO ;

    PROC PRINTTORUNRUNPRINTTODATAPROC

    Sheet1

    LABEL=

    LOG=

    LOG=and PRINT=

    NEW

    PRINT=

    UNIT=

    LABEL=

    LOG=

    NEW

    PRINT=

    UNIT=

    Sheet2

    Sheet3

  • 15.11 SASproc printto log= 'd:\log.dat'; /**/filename f1 'd:\out.txt';proc printto log= f1; /**/15.12 filename f2 'd:\out.list';proc printto print=f2; /**/proc printto print= 'd:\out.list'; /**/

  • 15.13 filename f printer;proc printto print=f;/**/proc printto print=print;/**/15.14 proc printto print='d:\out.txt' log= 'd:\log.dat' new;proc print data=fdata.class;run;

  • 15.15 SASoptions nodate pageno=1 linesize=80 pagesize=60 source;proc printto log=test.log label='Inventory program' new;run;proc printto print=fdata.cat1.inventry.output label='Inventory program' new;run;

    proc report data=fdata.inventry nowindows headskip;column dept item season year;title 'Current Inventory Listing';run;proc printto;run;

  • 15.16 /**/proc printto print=print;run;data probtest;infile routed;input word1 $ @;if word1='' then do;input df chisq prob;keep chisq prob;output;end;run;data test;do n=1 to 1000;x=int(ranuni(77777)*7);y=int(ranuni(77777)*5);output;end;run;filename routed 'D:\fdata\F1.txt';proc printto print=routed new;run;proc print data=probtest;title 'Chi-Square Analysis for Table of X by Y';run;proc freq data=test;tables x*y / chisq;run;

  • SASAPPENDSASSASDATASETSASAPPENDAPPENDSASDATA.

  • APPEND PROC APPEND BASE=SAS-data-set ; APPEND

    Sheet1

    BASE=| OUT=

    DATA=| NEW=

    FORCE

    Sheet2

    Sheet3

  • 15.17 PROC APPEND

    BASE= BASE= BASE=

  • 15.18 proc append base=data1 data=data2(where=(X=1));run;proc append base=a data= fdata.a600001(where=(year(date)=1999)) ;run;WHERE=WHEREDATA=BASE=

  • SASCOPYSAS

  • COPY PROC COPY OUT=libref-1 IN=libref-2 ; EXCLUDE SAS-file(s) ; SELECT SAS-file(s) ;

    SelectIN=ExcludeIN=PROC COPYSELECTEXCLUDE.

  • PROC COPY

    Sheet1

    IN|INLIB|INDD=

    OUT|OUTLIB|OUTDD=

    MEMTYPE|MTYPE|MT=

    MOVE

    ALTER=

    INDEX=YES/NO

    Sheet2

    Sheet3

  • MEMTYPE

    Sheet1

    ALL

    ACCESS

    CATALOG

    DATA

    PROGRAM

    VIEW

    Sheet2

    Sheet3

  • 15.19 SASproc copy in=lib1 out=lib2 MTYPE=(data catalog);run;

    15.20 LIB1SASLIB2proc copy in=lib1 out=lib2 move;run;

  • 15.21data fdata.dat fdata.dat1 fdata.dat2 fdata.dat3 (alter=zsw);var='move';run;proc copy in=fdata out=work move alter=zsw;select dat dat1-dat3;run;

    data fdata.dat fdata.dat1 fdata.dat2 fdata.dat3 (alter=zsw);var='move';run;proc copy in=fdata out=work move;select dat dat1-dat3 (alter=zsw);run;

  • 15.22 DATdata fdata.dat fdata.dat1 fdata.dat2 fdata.dat3 (alter=zsw);var='move';run;proc copy in=fdata out=work move;select dat: (alter=zsw);run;