五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆91在线播放

  • <center id="8gusu"></center><rt id="8gusu"></rt>
    <menu id="8gusu"><small id="8gusu"></small></menu>
  • <dd id="8gusu"><s id="8gusu"></s></dd>
    樓主: Tigflanker
    5174 5

    [問答] 如何在宏環(huán)境的data步中執(zhí)行宏語(yǔ)句 [推廣有獎(jiǎng)]

    • 8關(guān)注
    • 18粉絲

    副教授

    49%

    還不是VIP/貴賓

    -

    威望
    0 級(jí)
    論壇幣
    2321 個(gè)
    通用積分
    9.8528
    學(xué)術(shù)水平
    179 點(diǎn)
    熱心指數(shù)
    194 點(diǎn)
    信用等級(jí)
    167 點(diǎn)
    經(jīng)驗(yàn)
    27443 點(diǎn)
    帖子
    622
    精華
    0
    在線時(shí)間
    851 小時(shí)
    注冊(cè)時(shí)間
    2011-3-27
    最后登錄
    2023-5-14

    50論壇幣
    我有這么一個(gè)想法:

    %macro a;
    %let abc=0;
    data _null_;
    do i=1 to 10;
      if i=12 then
      (宏語(yǔ)句,例如:%let abc=1;);
    end;
    run;
    %put &abc;
    %mend;

    %a;

    結(jié)果Put為“1”,顯然%Let沒受到if控制。

    我記得在宏內(nèi)的data步,是先運(yùn)行里面的宏語(yǔ)句或者替換里面的宏變量的;我想請(qǐng)問下,有沒有能在data步中由data步條件(例如if)控制宏語(yǔ)句的語(yǔ)句呢?就像call symputx這樣的語(yǔ)句,謝謝。

    最佳答案

    zhengbo8 查看完整內(nèi)容

    LOG: 在execute()中,放宏代碼的字符串。
    關(guān)鍵詞:data步 Data symput Macro call 如何
    Bye SAS.
    若有緣,能重聚。
    沙發(fā)
    zhengbo8 發(fā)表于 2013-4-8 23:55:03 |只看作者 |壇友微信交流群
    1. %macro a;
    2. %let abc=0;
    3. data _null_;
    4.     %do i=1 %to 10;
    5.         %if i=12 %then %do;
    6.             call execute("%let abc=1;");
    7.         %end;
    8.     %end;
    9. run;
    10. %put &abc;
    11. %mend;

    12. %a;
    復(fù)制代碼

    LOG:

    2013-04-09_085902.gif

    在execute()中,放宏代碼的字符串。

    已有 2 人評(píng)分經(jīng)驗(yàn) 論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    Tigflanker + 1 + 1 + 1 正解
    webgu + 100 + 20 + 1 + 1 + 1 分析的有道理

    總評(píng)分: 經(jīng)驗(yàn) + 100  論壇幣 + 20  學(xué)術(shù)水平 + 2  熱心指數(shù) + 2  信用等級(jí) + 2   查看全部評(píng)分

    藤椅
    pobel 在職認(rèn)證  發(fā)表于 2013-4-9 11:20:23 |只看作者 |壇友微信交流群
    call execute()應(yīng)該能夠?qū)崿F(xiàn)樓主的目的。
    例如:

    %macro a;
    %let abc=0;
    data test;
         a=2;
          if a=1 then call execute('%let abc=1;');
              else if a=2 then call execute('%let abc=5');
    run;

    %put &abc;
    %mend;


    %a
    已有 2 人評(píng)分經(jīng)驗(yàn) 論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    Tigflanker + 1 + 1 + 1 感謝回答,謝謝!
    webgu + 100 + 20 + 1 + 1 + 1 觀點(diǎn)有啟發(fā)

    總評(píng)分: 經(jīng)驗(yàn) + 100  論壇幣 + 20  學(xué)術(shù)水平 + 2  熱心指數(shù) + 2  信用等級(jí) + 2   查看全部評(píng)分

    和諧拯救危機(jī)
    板凳
    webgu 發(fā)表于 2013-4-9 13:00:40 |只看作者 |壇友微信交流群
    感覺沒有必要那樣。

    %macro a;
    %let abc=0;
      %do i=1 %to 10;
          %if &i=12 %then   &abc=1;
             %end;
    %put &abc;
    %mend;

    %a;
    已有 1 人評(píng)分學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    Tigflanker + 1 + 1 + 1 是的。其實(shí)就想套那個(gè)exe的方法。

    總評(píng)分: 學(xué)術(shù)水平 + 1  熱心指數(shù) + 1  信用等級(jí) + 1   查看全部評(píng)分

    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    報(bào)紙
    yger 在職認(rèn)證  發(fā)表于 2013-4-9 13:06:02 |只看作者 |壇友微信交流群
    牛人很多!
    地板
    caibirdcnb 發(fā)表于 2017-11-10 21:59:34 |只看作者 |壇友微信交流群
    pobel 發(fā)表于 2013-4-9 11:20
    call execute()應(yīng)該能夠?qū)崿F(xiàn)樓主的目的。
    例如:
    然而,如果不是'%let abc=1’,而是'%let abc=數(shù)據(jù)步里的變量' 呢?

    本版微信群
    加好友,備注cda
    拉您進(jìn)交流群

    京ICP備16021002-2號(hào) 京B2-20170662號(hào) 京公網(wǎng)安備 11010802022788號(hào) 論壇法律顧問:王進(jìn)律師 知識(shí)產(chǎn)權(quán)保護(hù)聲明   免責(zé)及隱私聲明

    GMT+8, 2024-12-23 22:06