SAS零散知識總結


 1,變量名命名規范:以字母或者下划線開始,可包含字母、下划線、數字,且不超過32個字符;

2,INFILE用於讀取外部數據文件,一般於FILENAME(和LIBNAME用戶一致,但路徑要精確到文件名(、、.TXT/DAT等))連用。

3,INPUT語句用於定義字段變量,可用於讀去外部文件(INFILE)、CARDS、DATALINES。

4,變量類型轉換規則:①賦值:以賦值目標的變量類型而定自動轉化;②做運算→數值型;③做字符連接→字符型;④經過了字符處理函數→字符型;

5,字符和數值型變量在數據集中的顯示:①字符型→右對齊→缺失為空格;②數值性→左對齊→缺失為“.”;

6,在DATA步中一般情況下出現的字符都會默認為一個變量,若想寫字符型常量則要用“”、‘’括起來。(若字符常量本身還有“”則用‘’括起來,相反則用“”括起來。)

7,日期型常量包括:日期(DATE)、時間(TIME)、日期時間(DATETIME)3種。這三個類型的常量必須用引號括起來並且后面加常量對應的字母D、T、DT,表示日期、時間、日期時間。

8,注意:十六進制數常量必須用單引號括起來,后面加字符X。

9,篩選語句IF和WHERE,WHERE是在編譯階段執行,即程序執行之前就先篩選,大大提高程序效率。IF語句在執行階段執行,可用於新建變量的篩選。(一般情況下能用WHERE則用WHERE,缺點是:WHERE語句對變量類型的兼容性較低,嚴格控制“=”兩邊的數據類型相同,若多個WHERE語句出現只認最后一個WHERE語句),驗證程序如下:

DATA A;
INPUT ID X $;
CARDS;
1 R
2 T
4 O
5 P
;
RUN;
PROC PRINT DATA=A;
WHERE ID=1;
WHERE X="P";
VAR ID X;
RUN;

 

輸出結果為:

SAS 系統

 

Obs ID X
4 5 P
 
10,格式修飾符:①:,例如:$20.從非空格開始讀,知道遇到空格、溢出、數據結束為止。②&,例如&:$20數據中還有一個或者一個以上的空格,直到遇到連續兩個或兩個以上的連續空格、或者溢出為止。③~,L例如~&:$20.數據中含有引號或者分隔符號的數據。
11,指針控制:①@N:指從第N列位置開始(包含空格);②N1-N2:讀第N1列到第N2列之間的數據;③@,指針停在當前位置,知道遇見下一個INPUT;④@@,反復寫進“@@”前面的變量中(在外部文件的一行數據要攜程SAS數據集的多行時使用)。驗證如下;

DATA A;
INPUT ID X $ @@;
CARDS;
1 R 2 T
4 O 5 P
;
RUN;

DATA A;
INPUT ID X $ @@;
CARDS;
1 R
2 T
4 O
5 P
;
RUN;

以上兩段代碼輸出的結果一樣都是四條觀測;

 
12,INPUT語句:定義變量並讀入數據到數據集(數據流→數據集),PUT語句定義要從數據集中讀出數據變量(數據集→數據流);
13,INFORMAT:以什么格式輸入,FORMAT:以什么格式輸出。(例如:INFORMAT SY_DT MMDDYY10.;意為告訴SAS這是一個日期時間型的數據,請存為日期時間型數據。)
14,OPTIONS,用來改變SAS系統的默認設置,程序可以查看所有選項:
PROC OPRIONS;
RUN;

obs:表示需要處理的最后一行observation,如果指定其為max,就表示處理到最后一條observation

  firstobs:表示需要從第幾行observation開始處理,默認是1observation

  msglevel:默認值是N,僅打印notes,warnings和error信息,如果設為I,則除了打印N選項的信息,同時打印附屬信息,包括索引的使用,合並處理,排序等附加信息

  errors:指定最多有多少錯誤可以在log中顯示(也可以寫成error=num,編譯時按errors處理)

  macrogen:將宏擴展的結果顯示在log里

  compress:是否采用壓縮格式存儲數據集

  missing:指定用於替換missing value的字符,默認是(.)

  ps(pagesize):輸出時每頁行數

  ls(linesize):輸出時每行字數

  center/nocenter:指定輸出是否中間對齊

  date/nodate:指定輸出是否包含日期

  replace/noreplace:如果dataset已經存在,指定是否覆蓋

  print/noprint:指定是否在output窗口輸出

      date:輸出頁碼顯示日期      nodate:輸出頁碼不顯示日期

     center:輸出頁居中     nocenter:輸出頁不居中

    number:有頁碼    nonumber:無頁碼

 mprint 打印宏的每一次執行過程在日志中  nomprint 不打印、、

 


免責聲明!

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



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