2017-02-07 15 views
-1

20 개의 SAS 데이터 세트가 있으며이를 다른 Excel 시트로 내보낼 필요가 있습니다. 이 작업을 수행하기 위해 SAS 매크로를 만들었습니다. 그러나 출력의 끝에 공백이 있음을 알았습니다.SAS DDE Excel 빈 공간을 내 보냅니다.

For eg: "Creative" is getting exported as "Creative ". 

이와 같이 실제 데이터에는 공백이 없으며 변수를 내보내고 난 후에 만 ​​나타납니다. 나는이 공백을 제거하기 위해 다음의 코드를 포함시켰다.

Filename out dde "excel|[Output.xlsm]!sheet1!r1c1:r10c25"; 

data want; 
set have; 
array vars (i) _char_; 
do i=1 to dim(vars); 
    vars(i)=compress(vars(i)); 
end; 
run; 
data _null_; 
Set want; 
file out lrecl=1000 notab; 
put 
var1-var25; 
run; 

당신의 도움에 감사드립니다.

+0

내보내기 부분과 DDE 연결 문자열을 포함하여 실제로 사용 된 코드를 게시하십시오. – Reeza

+0

안녕하세요 Reeza, DDE 연결 문자열을 사용하여 코드를 편집했습니다 – ckp

+0

데이터를 잊어 버렸습니다. –

답변

0

이렇게 각 필드에서 뒤 공백을 재현 할 수있었습니다. 게시 된 코드가 누락 된 데이터부터 시작하여 암시 적 및 명시 적 배열을 혼합하여 작동하지 않았습니다. 심지어 COMPRESS가있는 단계는 문제를 해결하지 못할 수도 있습니다.

data _null_; 
    Set sashelp.shoes(keep=_char_ obs=19); 
    file out notab; 
    put (_char_)('09'x); 
    run; 

PUT 및 FILE 문을 약간 수정하면 올바른 결과를 얻게됩니다.

data _null_; 
    Set sashelp.shoes(keep=_char_ obs=19); 
    file out dlm='09'x notab; 
    put (_char_)(:); 
    run; 

알림 목록의 구분 기호가 탭으로 변경되고 PUT 문의 형식 목록이 '09'x에서로 변경됩니다. LIST PUT의 뉘앙스를 연구하겠습니다.