我試圖將數據集導出到使用的txt文件中;作爲分隔符,數據集有很多空值和char值,我想將所有值都替換爲''(這裏沒有空格)。SAS將null更改爲''
我嘗試使用下面的代碼要做到這一點,但它似乎SAS將改變「」到「」(一個空格)
if missing(VAR22) then VAR22='' ;
put VAR22 $ @;
全碼:
data _null_;
set lib.TABLE;
file "/home/user/file.txt" delimiter=';';
format VAR1 $1. ;
format VAR2 $8. ;
format VAR3 $3. ;
format VAR4 $6. ;
format VAR5 $9. ;
format VAR6 $2. ;
format VAR7 $1. ;
format VAR8 $4. ;
format VAR9 $1. ;
format VAR10 $1. ;
format VAR11 BEST12.;
format VAR12 NUMX13.2;
format VAR13 BEST12.;
format VAR14 NUMX13.2;
format VAR15 $1. ;
format VAR16 $2. ;
format VAR17 $3. ;
format VAR18 $3. ;
format VAR19 $4. ;
format VAR20 $20. ;
format VAR21 $1. ;
format VAR22 $1. ;
if missing(VAR1) then VAR1='' ;
put VAR1 $ @;
put VAR2 $ @;
put VAR3 $ @;
put VAR4 $ @;
put VAR5 $ @;
put VAR6 $ @;
put VAR7 $ @;
put VAR8 $ @;
put VAR9 $ @;
if missing(VAR10) then VAR10='' ;
put VAR10 @;
put VAR11 @;
put VAR12 @;
put VAR13 @;
put VAR14 @;
put VAR15 $ @;
put VAR16 $ @;
put VAR17 $ @;
put VAR18 $ @;
put VAR20 $ @;
put VAR19 $ @;
put VAR21 $ @;
if missing(VAR22) then VAR22='' ;
put VAR22 $ @;
put ;
run;
我也試過使用選項missing ='',但它不起作用。
謝謝!
我的意思是沒有,沒有引號和空格,基本上是一個空字符 – RamB
這個代碼的問題是,當你說'如果缺少(VAR1),那麼VAR1 ='';'。假設VAR1缺失,則VAR1將被空字符覆蓋。 SAS將空字符(用於字符類型變量)作爲單個空白存儲,因此您又回到了開始的位置。 – dataNinja124
是的,你是對的!我試圖用: put''@; 但它發送一個單引號到文本文件,有沒有辦法做到這一點? – RamB