SAS Input 輸入方法

2023-03-07 16:43 更新

輸入方法用于讀取原始數(shù)據(jù)。 原始數(shù)據(jù)可以來(lái)自外部源或來(lái)自流數(shù)據(jù)。 輸入語(yǔ)句創(chuàng)建一個(gè)變量,其名稱將分配給每個(gè)字段。 所以你必須在輸入語(yǔ)句中創(chuàng)建一個(gè)變量。 相同的變量將顯示在 SAS 數(shù)據(jù)集的輸出中。 以下是 SAS 中可用的不同輸入方法。

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

每個(gè)輸入方法的細(xì)節(jié)描述如下。

列表輸入方法

在此方法中,變量與數(shù)據(jù)類型一起列出。 仔細(xì)分析原始數(shù)據(jù),以便聲明的變量的順序與數(shù)據(jù)匹配。 分隔符(通常為空格)在任何一對(duì)相鄰列之間應(yīng)該是一致的。 任何丟失的數(shù)據(jù)將導(dǎo)致輸出中的問(wèn)題,因?yàn)榻Y(jié)果將是錯(cuò)誤的。

下面的代碼和輸出顯示了使用列表輸入法。

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;

在運(yùn)行 bove 代碼,我們得到以下輸出。


命名輸入方法

在此方法中,變量與數(shù)據(jù)類型一起列出。 原始數(shù)據(jù)被修改為在匹配數(shù)據(jù)前面聲明變量名。 分隔符(通常為空格)在任何一對(duì)相鄰列之間應(yīng)該是一致的。

下面的代碼和輸出顯示使用命名輸入法。

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;

在運(yùn)行 bove 代碼,我們得到以下輸出。


列輸入法

在此方法中,變量列出的數(shù)據(jù)類型和列寬度指定單列數(shù)據(jù)的值。 例如,如果員工姓名包含最多 9 個(gè)字符,每個(gè)員工姓名從第 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;

當(dāng)我們執(zhí)行上面的代碼,它會(huì)產(chǎn)生以下結(jié)果:

格式化輸入法( input 語(yǔ)句讀取非標(biāo)準(zhǔn)數(shù)據(jù)的唯一方法 

在該方法中,從固定的起始點(diǎn)讀取變量,直到遇到空格。 由于每個(gè)變量都有固定的起始點(diǎn),任何一對(duì)變量之間的列數(shù)將成為第一個(gè)變量的寬度。 字符“@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;

當(dāng)我們執(zhí)行上面的代碼,它會(huì)產(chǎn)生以下結(jié)果:



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)