2016年2月27日 星期六

把sas資料集裡的某個值存成巨集變數(macro)


  • 把sas資料集裡的某個值存成巨集變數(macro)
使用
call symputx ("meanx", meanx);
就可以輕鬆存成巨集變數,symputx("巨集變數名稱",  變數名稱)。
巨集變數可以在任一個data step使用。


  • 範例:


proc means data = mysas.ex7_1 noprint;
 var Hardwood_Concentration__xi____;
 output out = add (drop = _type_ _freq_)
  mean(Hardwood_Concentration__xi____) = meanx;
run;

data _null_;
 set add;
 call symputx ("meanx", meanx);
run;

data nex7_1;
 set mysas.ex7_1;
 x1 = Hardwood_Concentration__xi____ - &meanx;
 x2 = (Hardwood_Concentration__xi____ - &meanx)**2;
run;

proc reg data = nex7_1;
 model Tensile_Strength__yi__psi_ = x1 x2;
run;
quit;
如果想要把變數減掉平均當作解釋變數如下圖,就可使用此方法。




資料集add:





%put &meanx; 

Related Posts:

  • SAS DATASET 透過 ODS 產生EXCELods _all_ close; ods excel file="E:\jimmy\excel.xlsx" options (sheet_name="sheet1") STYLE= HTMLBLUE ; proc print data=MST_PREP.ACCOUNT_TRANSACTIONS;… Read More
  • 偵測多個SAS LOG狀態 前半段MACRO來源:识别文件夹下指定文件类型及名称 將所有偵測LOG後的結果存入DB, 目前設定: 一、執行它時,[SAS_JOB_log]會先清空,會抓 "F:\SASWork\SAS\Config\Lev1\SASApp\BatchServer\Logs\DB_LOG\"下的LO… Read More
  • 比較兩個 SAS DATA 變數的屬性 MACRO先將兩個SAS DATA的屬性output到sit_var與uat_var,把欄位屬性變成觀測值。 如下: data DB1_DS1; length y $ 13.; input x y z; format x ddmmyy.; datalines; 1 1 1 ; run; data D… Read More
  • ERROR: Unable to transcode data to/from UCS-2 encoding.可試試此MACRO(連結) 或使用KCOUNT() 找中文 檢查長度夠不夠 以下舊文 append失敗時,可能為以下情況: 1.非NULL欄位,觀測值為NULL。 2.文字欄位長度不夠,產生亂碼。     (數值欄位也有可能,SAS大多為8,但… Read More
  • SOURCE_CHECK_2 SAS AML 的 SOURCE_CHECK 已經有資料筆數、NULL、UNIQUE與LOOKUP的檢核了 SOURCE_CHECK_2 檢核觀測值的MACRO。 範例: data DB_A; input Pty $ score  number; datalines; A 100 … Read More

0 意見:

張貼留言