<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic 질문드립니다. in SAS News and Q&amp;A</title>
    <link>https://communities.sas.com/t5/SAS-News-and-Q-A/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4/m-p/695644#M26</link>
    <description>&lt;P&gt;안녕하세요, SAS 초보로 요새 매크로 부분을 공부 중인 사람입니다.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;아래와 같이 코드를 짰는데요&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%MACRO&lt;/STRONG&gt;&amp;nbsp;BINNING();&lt;/P&gt;&lt;P&gt;DATA _NULL_;&lt;/P&gt;&lt;P&gt;SET TMP;&lt;/P&gt;&lt;P&gt;ARRAY VAR {*} _ALL_;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('N', DIM(VAR));&lt;/P&gt;&lt;P&gt;%DO I = &lt;STRONG&gt;1&lt;/STRONG&gt; %TO &amp;amp;N;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('VN', VNAME(VAR{&amp;amp;I}));&lt;/P&gt;&lt;P&gt;CALL EXECUTE('PROC RANK DATA = TMP(KEEP = &amp;amp;VN) OUT = &amp;amp;VN._BIN GROUPS = 5 TIES = DENSE;' || 'VAR &amp;amp;VN;' || 'RUN;' );&lt;/P&gt;&lt;P&gt;%END;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%MEND&lt;/STRONG&gt;&amp;nbsp;BINNING;&lt;/P&gt;&lt;P&gt;%BINNING();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;원 데이터 TMP에서 변수를 하나씩 꺼내 PROC RANK를 이용해 구간을 자르려는게 제 의도인데요!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;매크로를 실행시키면 의도한 대로 각변수가 구간이 잘려지고 관련된 데이터 셋들이 형성은 되는데...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;루프가 안멈춘다고 해야할지 매크로가 안멈춘다고 해야할지...&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC RANK를 실행하는 과정이 끊임없이 반복되어 제가 강제적으로 종료를 시켜야하더라고요.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;N을 통해서 DO LOOP의 끝을 지정해줬다고 생각하는데...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;왜 끊임 없이 돌아가는지 아시는 분 계시는지요 ㅠ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 09 Nov 2021 16:10:42 GMT</pubDate>
    <dc:creator>opuyfb91</dc:creator>
    <dc:date>2021-11-09T16:10:42Z</dc:date>
    <item>
      <title>질문드립니다.</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4/m-p/695644#M26</link>
      <description>&lt;P&gt;안녕하세요, SAS 초보로 요새 매크로 부분을 공부 중인 사람입니다.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;아래와 같이 코드를 짰는데요&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%MACRO&lt;/STRONG&gt;&amp;nbsp;BINNING();&lt;/P&gt;&lt;P&gt;DATA _NULL_;&lt;/P&gt;&lt;P&gt;SET TMP;&lt;/P&gt;&lt;P&gt;ARRAY VAR {*} _ALL_;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('N', DIM(VAR));&lt;/P&gt;&lt;P&gt;%DO I = &lt;STRONG&gt;1&lt;/STRONG&gt; %TO &amp;amp;N;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('VN', VNAME(VAR{&amp;amp;I}));&lt;/P&gt;&lt;P&gt;CALL EXECUTE('PROC RANK DATA = TMP(KEEP = &amp;amp;VN) OUT = &amp;amp;VN._BIN GROUPS = 5 TIES = DENSE;' || 'VAR &amp;amp;VN;' || 'RUN;' );&lt;/P&gt;&lt;P&gt;%END;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%MEND&lt;/STRONG&gt;&amp;nbsp;BINNING;&lt;/P&gt;&lt;P&gt;%BINNING();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;원 데이터 TMP에서 변수를 하나씩 꺼내 PROC RANK를 이용해 구간을 자르려는게 제 의도인데요!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;매크로를 실행시키면 의도한 대로 각변수가 구간이 잘려지고 관련된 데이터 셋들이 형성은 되는데...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;루프가 안멈춘다고 해야할지 매크로가 안멈춘다고 해야할지...&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC RANK를 실행하는 과정이 끊임없이 반복되어 제가 강제적으로 종료를 시켜야하더라고요.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;N을 통해서 DO LOOP의 끝을 지정해줬다고 생각하는데...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;왜 끊임 없이 돌아가는지 아시는 분 계시는지요 ㅠ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Nov 2021 16:10:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4/m-p/695644#M26</guid>
      <dc:creator>opuyfb91</dc:creator>
      <dc:date>2021-11-09T16:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: 질문드립니다.</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4/m-p/696097#M27</link>
      <description>&lt;P&gt;아래 문장을 실행한 후에 코드를 실행하여 LOG에 나오는 프로그램 확인해 보세요.&lt;/P&gt;
&lt;P&gt;OPTIONS MPRINT;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;데이터 스텝에서 매크로 변수 생성하면서 동일한 스텝에서 생성된 매크로 변수는 사용하지 않아야 합니다.&lt;/P&gt;
&lt;P&gt;이 부분만 주의해서 사용하시면 될 듯 합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;다음 코드를 사용하시면 원하시는 결과가 나옵니다.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%MACRO BINNING();

DATA _NULL_;
SET TMP;
ARRAY VAR {*} _ALL_;
CALL SYMPUT('N', DIM(VAR));
DO I = 1 TO DIM(VAR);
CALL SYMPUT('VN'||left(put(I,4.)), VNAME(VAR{I}));
END;

RUN;

%put &amp;amp;=n;
%put &amp;amp;=vn1;

%DO I = 1 %TO &amp;amp;N;
PROC RANK DATA = TMP(KEEP = &amp;amp;&amp;amp;VN&amp;amp;I) OUT = &amp;amp;&amp;amp;VN&amp;amp;I.._BIN GROUPS = 5 TIES = DENSE; VAR &amp;amp;&amp;amp;VN&amp;amp;I; RUN;
%END;

%MEND BINNING;

%BINNING();
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 03 Nov 2020 05:41:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4/m-p/696097#M27</guid>
      <dc:creator>Chulgyu1</dc:creator>
      <dc:date>2020-11-03T05:41:14Z</dc:date>
    </item>
  </channel>
</rss>

