SAS基礎語句


一、 新建邏輯庫

Libname 邏輯庫 路徑”;

Libname ana “C:\Desktop\SAS培訓”;

 

二、 導入數據表

1、 手工導入

直接從文件-導入數據”,從外部導入excelcsv格式的數據表。

 

2、 代碼導入

proc import 

datafile="D:\base.csv"

out=ana.limit_base replace;

getnames=yes;/*以第一行為變量名稱*/

delimiter=','; /*分隔符*/

GUESSINROWS=225409;/*SAS默認讀取前20行判斷數據類型,故可能判斷錯,需將此參數設置大一點*/

run;

 

三、 數據加工(data

1、 復制數據set

Data test1;

Set test;

Run;

 

2、 保留字段keep

Keep 字段名

Data test2;

Set test;

Keep cust_no credit_dna4;

Run;

 

3、 刪除字段(drop

drop字段名

Data test3;

Set test;

drop cust_no credit_dna4;

Run;

 

4、 字段重命名rename

Rename 字段名=新字段名

Data test4;

Set test;

rename cust_no=cust_no_1;

Run;

 

5、 字段運算

Data test5;

Set test;

C=a+b;

Run;

 

6、 條件判斷(if……then……

If 條件 then 結果

Data test6;

Set test;

If 0<=a<10 then z=”01.[0,10)”;

else if 10<=a<20 then z=”02.[10,20)”;

else if 20<=a<30 then z=”03.[20,30)”;

else z=”04.>=30”;

run;

 

7、 刪除記錄(delete

Data test7;

Set test;

If a=10 then delete;

Run;

 

8、 篩選記錄whereif

1where

Data test8_1;

Set test;

Where x>10;

Run;

 

2if

Data test8_2;

Set test;

Where if>10;

Run;

 

Data test8_3;

Set test;

Z=x+y;

If z>10;

Run;

9、 數據縱向合並(set相當於sqlunion

Data test9;

Set table_1 table_2;

Run;

 

10數據橫向合並merge

Merge之前需對數據集按照關聯字段進行排序

1)左連接相當sqlleft join

Data test10_1;

Merge table_1(in=a) table_2(in=b);

By cust_no;

If a;

Run;

 

2)內連接相當sqlinner join

Data test10_2;

Merge table_1(in=a) table_2(in=b);             

By cust_no;

If a and b;

Run;

 

3)全連接相當sqlfull join

Data test10_3;

Merge table_1(in=a) table_2(in=b);

By cust_no;

If a or b;

Run;

 

4)排除

數據a中而不在b

Data test10_4;

Merge table_1(in=a) table_2(in=b);

By cust_no;

If a=1 and b=0;

Run;

 

四、 數據分析proc

1、 排序(proc sort

Proc sort data=test out=test1;by cust_no month descending;run;

 

2、 頻數分布(proc freq

(1) 單變量頻數分布

Proc freq data=test;

table x1 x2;

run;

(2) 多變量頻數分布

Proc freq data=test;

table x*y;

run;

3、 一般描述統計(proc means

x分組計算y統計值

Proc means data=test;

Var y;

Class x;

Run;

 

4、 詳細描述統計(proc univariate

x分組計算y統計值

Proc univariate data=test;

Var y;

Class x;

Run;

 

5、 sql

proc sql;

create table test5 as

select cust_no

,x1

,x2

From table1 a

Left join table2(drop=x3) b on a.cust_no=b.cust_no;

Quit;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM