sas 語句中的@ 或者是@@是什麼意思?
- 2021-09-09
都是行控制符。
可以簡單理解為,@代表跳轉到當前輸入值的下一行(不論當前行是否還有內容未輸入),@@代表繼續輸入當前行的內容,直到結束為止。
obs=0,則表示建立一個新的空資料集,具有原資料集的結構,但不包含其資料。
obs=引數的含義是允許 data 步或 proc 步讀取已有資料集的最後一行資料的行數。
sas語言程式由資料步和過程步組成。資料步用來生成資料集、計算、整理資料,過程步用來對資料進行分析、報告。sas語言的基本單位是語句,每個sas語句一般由一個關鍵字(如data,proc,input,cards,by)開頭,包含sas名字、特殊字元、運算子等,以分號結束。
sas關鍵字是用於sas語句開頭的特殊單詞,sas語句除了賦值、累加、註釋、空語句以外都以關鍵字開頭。sas名字在sas程式中標識各種sas成分,如變數、資料集、資料庫,等等。sas 名字由1到8個字母、數字、下劃線組成,第一個字元必須是字母或下劃線。sas關鍵字和sas 名字都不分大小寫。
sas資料步程式中的計算用表示式完成。表示式把常量、變數、函式呼叫用運算子、括號連線起來得到一個計算結果。
sas常量主要有數值型、字元型兩種,並且還提供了用於表達日期、時間的資料型別。
兩個都是行控制符
@ 表示執行下一個操作時,指標移到下一個記錄。
@@表示執行下一個操作,指標保持在當前記錄。
給個例子:
data a;
input x y @;
cards;
1 2 3 4
2 2 3 5
3 2 1 1
;run;
proc print data=a;run;
data b;
input x y @@;
cards;
1 2 3 4
2 2 3 5
3 2 1 1
;run;
proc print data=b;run;
結果如下:
The SAS System 10:58 Saturday, December 24, 2011 1
Obs x y
1 1 2
2 2 2
3 3 2
The SAS System 10:58 Saturday, December 24, 2011 2
Obs x y
1 1 2
2 3 4
3 2 2
4 3 5
5 3 2
6 1 1