python 访问sas 逻辑库,SAS | 逻辑库和SAS数据集
[TOC]
1 臨時和永久數據集
SAS數據集名稱
SAS數據集有臨時和永久兩種存在方式。所有的SAS數據集都有一個兩級名稱,兩個層級之間用句點.分隔。
第一層級:邏輯庫引用名
第二層級:數據集名稱
注意,兩級名稱出現在 DATA 語句和 DATA= 選項中
邏輯庫引用名、數據集名稱都遵循SAS命名的標準規則:以字母或下劃線開始,且只包含數字、字母或下劃線。此外,邏輯庫引用名長度不超過8個字符,數據集名稱不超過32個字符。 ? 臨時SAS數據集
沒有聲明邏輯庫引用名的數據集,都是臨時數據集,默認保存在 WORK 邏輯庫中,會話結束時,會被SAS刪除。 ? 永久SAS數據集
創建永久SAS數據集,需要使用邏輯庫引用名。而使用之前需要先進行定義,可以使用新建邏輯庫 或 LIBNAME語句進行定義。
示例:libname zdata "C:\user\datafile" ;
2 通過LIBNAME語句使用永久SAS數據集(libname)
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;
3 通過直接引用使用永久SAS數據集('路徑+名稱')
SAS也可以不建立邏輯庫引用名和定義SAS邏輯庫,直接引用永久SAS數據集,但**「不推薦」**此用法。 ? 直接創建永久SAS數據集
只需要把數據集的名稱和路徑放在要使用該數據的引號之內,即可直接創建永久SAS數據集。
data "D:\data\sas_file\test.dat"; /* windows操作環境 */
data "/home/rds/zdata/app.dat"; /* unix操作環境 */
直接引用永久SAS數據集
只需要在要使用該數據的地方,將該數據集的路徑和名稱包含在引號中即可。
proc print data = "D:\data\sas_file\test.dat";
4 列出SAS數據集中的內容(contents)
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;
注意,給數據集或者變量加標簽時,標簽長度不能超過256個字符。加標簽的目的,是記錄下更多信息。此外,data步和proc步都可以為數據添加標簽,但適用范圍有區別:
data步加label:描述信息儲存在數據集中,打印會顯示
proc步加label:標簽只在process中使用,打印不會顯示
上面程序還包含了 informat 和 foamat 語句,兩者可以用來為變量關聯輸出格式和輸出格式。
informat 語句:格式化輸入
foamat 語句:格式化輸出
這兩種語句對數據起作用的存儲邏輯和上面一樣,data步若指定了informat 和 foamat 語句,則指定的輸入格式和輸出格式會被存儲到數據集中,打印會顯示。反之,proc步的則適用于proc過程中,打印不顯示。
最后,proc contents的輸出是三張表,分別描述了數據集信息、每個變量信息:
關于該數據集
關于每個變量
數據集名稱
類型(數值或者字符)
觀測數
長度(以字節為單位的存儲大小)
變量數
用于打印的輸出格式(如果有的話)
創建日期
用于輸入的輸入格式(如果有的話)
數據集標簽(如果有的話)
變量標簽(如果有的話)
總結
以上是生活随笔為你收集整理的python 访问sas 逻辑库,SAS | 逻辑库和SAS数据集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝API常用接口列表与申请方式
- 下一篇: 水瓶与天蝎的八年爱恋(图