SAS - 輸入方法



輸入方法用於讀取原始資料。原始資料可能來自外部來源或來自流式資料行。INPUT 語句建立一個變數,其名稱分配給每個欄位。因此,您必須在 INPUT 語句中建立一個變數。相同的變數將顯示在 SAS 資料集的輸出中。以下是 SAS 中可用的不同輸入方法。

  • 列表輸入法
  • 命名輸入法
  • 列輸入法
  • 格式化輸入法

每種輸入方法的詳細資訊如下所述。

列表輸入法

在這種方法中,變數列出資料型別。仔細分析原始資料,以便宣告的變數順序與資料匹配。分隔符(通常為空格)應在任何一對相鄰列之間保持一致。任何缺失資料都會導致輸出問題,因為結果將不正確。

示例

以下程式碼及其輸出顯示了列表輸入法的使用。

DATA TEMP;
INPUT   EMPID ENAME $ DEPT $ ;
DATALINES;
1 Rick  IT
2 Dan  OPS
3 Tusar  IT
4 Pranab  OPS
5 Rasmi  FIN
;
PROC PRINT DATA = TEMP;
RUN;

執行上述程式碼後,我們將獲得以下輸出。

list_n_named_input

命名輸入法

在這種方法中,變數列出資料型別。修改原始資料,在匹配資料前面宣告變數名。分隔符(通常為空格)應在任何一對相鄰列之間保持一致。

示例

以下程式碼及其輸出顯示了命名輸入法。

DATA TEMP;
INPUT   
EMPID= ENAME= $ DEPT= $ ;
DATALINES;
EMPID = 1 ENAME = Rick  DEPT = IT
EMPID = 2 ENAME = Dan  DEPT = OPS
EMPID = 3 ENAME = Tusar  DEPT = IT
EMPID = 4 ENAME = Pranab  DEPT = OPS
EMPID = 5 ENAME = Rasmi  DEPT = FIN
;
PROC PRINT DATA = TEMP;
RUN;

執行上述程式碼後,我們將獲得以下輸出。

list_n_named_input

列輸入法

在這種方法中,變數列出資料型別和列的寬度,指定單個數據列的值。例如,如果員工姓名最多包含 9 個字元,並且每個員工姓名都從第 10 列開始,則員工姓名變數的列寬將為 10-19。

示例

以下程式碼顯示了列輸入法。

DATA TEMP;
INPUT   EMPID 1-3 ENAME $ 4-12 DEPT $ 13-16;
DATALINES;
14 Rick     IT 
241Dan      OPS 
30 Sanvi    IT 
410Chanchal OPS 
52 Piyu     FIN 
;
PROC PRINT DATA = TEMP;
RUN;

當我們執行上述程式碼時,它會產生以下結果:

column_n_formatted_input

格式化輸入法

在這種方法中,變數從固定的起始點讀取,直到遇到空格。由於每個變數都有一個固定的起始點,因此任何一對變數之間的列數成為第一個變數的寬度。“@n”用於將變數的起始列位置指定為第 n 列。

示例

以下程式碼顯示了格式化輸入法。

DATA TEMP;
INPUT   @1 EMPID $ @4 ENAME $ @13 DEPT $ ;
DATALINES;
14 Rick     IT 
241 Dan      OPS 
30 Sanvi    IT 
410 Chanchal OPS 
52 Piyu     FIN 
;
PROC PRINT DATA = TEMP;
RUN;

當我們執行上述程式碼時,它會產生以下結果:

column_n_formatted_input
廣告
© . All rights reserved.