SAS 邏輯庫和SAS資料集

2022-08-26 09:12:11 字數 2943 閱讀 3130

目錄sas資料集名稱

sas資料集有臨時和永久兩種存在方式。所有的sas資料集都有乙個兩級名稱,兩個層級之間用句點.分隔。

注意,兩級名稱出現在data語句和data=選項中

邏輯庫引用名、資料集名稱都遵循sas命名的標準規則:以字母或下劃線開始,且只包含數字、字母或下劃線。此外,邏輯庫引用名長度不超過8個字元,資料集名稱不超過32個字元。

臨時sas資料集

沒有宣告邏輯庫引用名的資料集,都是臨時資料集,預設儲存在work邏輯庫中,會話結束時,會被sas刪除。

永久sas資料集

建立永久sas資料集,需要使用邏輯庫引用名。而使用之前需要先進行定義,可以使用新建邏輯庫 或 libname語句進行定義。

示例:libname zdata "c:\user\datafile" ;

libname語句定義邏輯庫引用名,是sas中建立邏輯庫最常見的方法。其基本形式如下:

libname 邏輯庫名稱 '邏輯庫儲存路徑' ;

注意,在不同系統操作環境下,路徑會有所不同。

建立永久sas資料集

libname zdata 'd:\data';                   /* 1.建立邏輯庫引用名zdata */

data zdata.plants; /* 3.儲存讀取的資料到命名為plants的永久資料集中 */

infile 'd:\data\sas_file\test.dat'; /* 2.從名為test的檔案中讀取原始資料 */

上面這段程式,執行邏輯是先1,再2,最後3。、

讀取永久sas資料集

要使用永久sas資料集,可以在程式中包含一條libname語句,並通過兩級名稱引用它。

示例:

libname zdata1 'd:\data';                  /* 引用名可以不一樣,但路徑必須一致 */

proc print data = zdata1.plants; /* 引用時,資料集名稱是唯一標識,不能更改 */

title "常見植物資料表";

run;

sas也可以不建立邏輯庫引用名和定義sas邏輯庫,直接引用永久sas資料集,但「不推薦」此用法。

直接建立永久sas資料集

只需要把資料集的名稱和路徑放在要使用該資料的引號之內,即可直接建立永久sas資料集。

data "d:\data\sas_file\test.dat";     /* windows操作環境 */

直接引用永久sas資料集

只需要在要使用該資料的地方,將該資料集的路徑和名稱包含在引號中即可。

proc print data = "d:\data\sas_file\test.dat";
sas儲存資料集,除了儲存資料本身以外,還會儲存有關該資料集的一些其他資訊(也被稱為描述符部分),可以使用contents過程檢視這部分資訊,只需要在 data= 選項後面指定資料集即可。

語法:proc contents data = data-set ;

*建立邏輯庫;

libname zdata "d:\data\sas_file";

*data步建立乙個資料集;

data zdata.funnies (label = 'comics character data'); /*'label='選項,給資料集加標籤*/

input id name $ height weight dob mmddyy8. @@;

label id = 'identification no.' /*'label'語句,給變數加標籤*/

height = 'height in inches'

weight = 'weight in pounds'

dob = 'data of birth';

informat dob mmddyy8.; /*格式化輸入*/

format dob worddate18.; /*格式化輸出*/

datalines;

53 susie 42 41 07-11-81 54 charlie 46 55 10-26-54

55 calvin 40 35 01-10-81 56 lucy 46 52 01-13-55

;run;

*使用proc contents過程描述資料集;

proc contents data = zdata.funnies;

run;

上面程式還包含了 informat 和 foamat 語句,兩者可以用來為變數關聯輸出格式和輸出格式。

這兩種語句對資料起作用的儲存邏輯和上面一樣,data步若指定了informat 和 foamat 語句,則指定的輸入格式和輸出格式會被儲存到資料集中,列印會顯示。反之,proc步的則適用於proc過程中,列印不顯示。

最後,proc contents的輸出是三張表,分別描述了資料集資訊、每個變數資訊:

關於該資料集

關於每個變數

資料集名稱

型別(數值或者字元)

觀測數長度(以位元組為單位的儲存大小)

變數數用於列印的輸出格式(如果有的話)

建立日期

用於輸入的輸入格式(如果有的話)

資料集標籤(如果有的話)

變數標籤(如果有的話)

如何使用SAS邏輯庫

什麼是sas邏輯庫?通俗地講,就是儲存sas資料集的倉庫。當然,sas邏輯庫的定義遠不是這樣,但是為了方便理解,我暫且把它理解成這樣。其實sas邏輯庫是乙個邏輯標識,指向乙個物理的位址,我們在使用sas邏輯庫的時候其實就是在使用這個實體地址,比如說,乙個名為mylib的邏輯庫,其指向的實體地址為d ...

SAS筆記 8 利用陣列重構SAS資料集

1.寬資料變長資料 建立資料集 data diagnose input 1 patno 2.3date mmddyy10.14 dx1 dx3 format date mmddyy10.datalines 10 21 1999 1 2.10 29 1999 2.11 11 2000 3.01 01 ...

SAS資料集 排序 SORT

資料集中的變數進行排序,公升序或降序排列,將排序後資料集存放到新的資料集或替換原資料集,通過sort語句實現。資料集合並或更新,需先進行排序。proc sort options by descending variables run 其中options包括 data 資料集,需排序資料集名稱,預設為...