sas巨集中%if%else和if else的區別
data a;
set x;
%do m=1 %to 3;
%do q=1 %to 5;
if x&q^="nan" and &m=id and x&q="&&id&m&q" then do;
&&id&m&q=1;
put '有值 且id相等' id= x&q= &&id&m&q=;
上面**是正常的if else語句,它可以把變數轉變成數值,就是說x&q可以代表x1-x5,但是if語句是把變數解讀成值,即id=1時x1=『張三』,字串張三。
可以了看到x&q^=「nan」,沒有x變數等於nan的。說明if語句把變數解讀成了值。
接下來看%if**。
%do m=1 %to 3;
%do q=1 %to 5;
%if x&q=nan %then %do;
&&id&m&q=1;
put '有值 且id相等' id= x&q= &&id&m&q=;
%end;
這段語句執行沒有列印任何內容。
data a;
set x;
%do m=1 %to 3;
%do q=1 %to 5;
%if x&q=x1 %then %do;
&&id&m&q=1;
put '有值 且id相等' id= x&q= &&id&m&q=;
%end;
這段**執行,有結果。說明%if語句將x&q解讀成x1文字,並不會將x1的值解讀出來。且巨集if語句中不需要用「」區別字串,巨集if語句中所代表的內容,全部都是字面意義的字串,沒有data步變數存在。只能有巨集變數。 sas中巨集變數 建立方式及區別
方式一 let x 5 let y test put x y 方式二 data null call symput x 5 call symput y test run put x y 方式三 若有多條記錄,只取第一條的值 proc sql noprint select min weight max ...
verilog中if else和case的比較
比較if else if else和case 1 if a 2 b00 語句1 else if a 2 b01 語句2 else 語句3 case a 2 b00 語句1 2 b01 語句2 default 語句3 endcase 在這種情況下,判斷條件中只有乙個能滿足,不管先判斷哪個條件,都不影響...
SAS驅動中PHY和PORT的介紹
v0.1 20170412 felix init 這篇文件是基於核心linux v4.10,hisi sas驅動,介紹phy,port,及其之間的關係。phy層定義了8b10b編碼和解碼方式 組成dwords oob訊號 phy reset以及速率協商等過程。phy層的主要作用是實現phy rese...