五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆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>
    樓主: playmore
    1949 3

    [程序分享] SAS基礎(chǔ)宏之6:ChkVarFormat [推廣有獎(jiǎng)]

    • 16關(guān)注
    • 79粉絲

    學(xué)科帶頭人

    2%

    還不是VIP/貴賓

    -

    TA的文庫(kù)  其他...

    R相關(guān)

    經(jīng)濟(jì)學(xué)相關(guān)

    金融工程

    威望
    1 級(jí)
    論壇幣
    16330 個(gè)
    通用積分
    8.5797
    學(xué)術(shù)水平
    372 點(diǎn)
    熱心指數(shù)
    394 點(diǎn)
    信用等級(jí)
    341 點(diǎn)
    經(jīng)驗(yàn)
    15297 點(diǎn)
    帖子
    1194
    精華
    1
    在線時(shí)間
    1331 小時(shí)
    注冊(cè)時(shí)間
    2007-1-11
    最后登錄
    2023-12-15

    初級(jí)學(xué)術(shù)勛章 初級(jí)熱心勛章 中級(jí)熱心勛章

    樓主
    playmore 發(fā)表于 2013-4-15 20:47:00 |只看作者 |壇友微信交流群|倒序 |AI寫論文

    +2 論壇幣
    k人 參與回答

    經(jīng)管之家送您一份

    應(yīng)屆畢業(yè)生專屬福利!

    求職就業(yè)群
    趙安豆老師微信:zhaoandou666

    經(jīng)管之家聯(lián)合CDA

    送您一個(gè)全額獎(jiǎng)學(xué)金名額~ !

    感謝您參與論壇問題回答

    經(jīng)管之家送您兩個(gè)論壇幣!

    +2 論壇幣
    用來(lái)檢查數(shù)據(jù)格式的
    好像SAS沒有判斷日期變量的好辦法,只能看格式是不是DATE9.,YYMMDD之類的了
    如果有其他辦法,記得通知我

    1. %macro ChkVarFormat(SourceTable,InputVar,FlagVarFormat);

    2. /**********************************************************************/
    3. /* 此宏的作用是檢查某數(shù)據(jù)表中指定變量的格式,如日期格式Y(jié)YMMDD10.和字 */
    4. /* 符串格式$40.。其中,SourceTable是原始表格;InputVar是指定的變量, */
    5. /* 若為多個(gè)變量,請(qǐng)用空格分隔;FlagVarFormat是標(biāo)記宏變量名稱,若有多 */
    6. /* 個(gè)InputVar變量,則用小數(shù)點(diǎn)分隔。 */
    7. /* */
    8. /* 最終得到的是宏變量&FlagVarFormat。 */
    9. /* */
    10. /* Created on 2012.9.7 */
    11. /* Modified on 2012.9.18 */
    12. /**********************************************************************/

    13. %if %SYSFUNC(FIND(&SourceTable,.)) NE 0 %then %do;
    14. %let CVF_LibName=%UPCASE(%SCAN(&SourceTable,1,.));
    15. %let CVF_MemName=%UPCASE(%SCAN(&SourceTable,2,.));
    16. %end;
    17. %else %do;
    18. %let CVF_LibName=WORK;
    19. %let CVF_MemName=%UPCASE(&SourceTable);
    20. %end;

    21. %ChkDataSet(DataSet=&CVF_LibName..&CVF_MemName,FlagDataSetExists=CVF_FlagDataSetExists);

    22. %if &CVF_FlagDataSetExists EQ 1 %then %do;
    23. %ChkVar(SourceTable=&SourceTable,InputVar=&InputVar,FlagVarExists=CVF_FlagVarExists);

    24. %if %SYSFUNC(FIND(&CVF_FlagVarExists,0)) EQ 0 %then %do;
    25. proc contents data=&SourceTable out=CVF_temp(keep=NAME TYPE FORMAT FORMATL) noprint;
    26. run;

    27. %global &FlagVarFormat;

    28. %if %SYSFUNC(FIND(&InputVar,%STR( ))) NE 0 %then %do;
    29. %SeparateString(InputString=&InputVar,OutputString=CVF);

    30. %do CVF_i=1 %to &CVF_Num;
    31. %let CVF_FlagVarExists&CVF_i=0;

    32. data _null_;
    33. set CVF_temp;
    34. if UPCASE(NAME)=UPCASE("&&CVF_Var&CVF_i.") then do;
    35. call symputx("CVF_FlagVarFormat&CVF_i",FORMAT);
    36. call symputx("CVF_FlagVarFormatL&CVF_i",FORMATL);
    37. end;
    38. run;
    39. %end;

    40. %let &FlagVarFormat=&&CVF_FlagVarFormat1.&&CVF_FlagVarFormatL1;

    41. %do CVF_j=2 %to &CVF_Num;
    42. %let &FlagVarFormat=&&&FlagVarFormat.%STR(.)&&CVF_FlagVarFormat&CVF_j&&CVF_FlagVarFormatL&CVF_j;
    43. %end;
    44. %end;
    45. %else %do;
    46. data _null_;
    47. set CVF_temp;
    48. if UPCASE(NAME)=UPCASE("&InputVar.") then do;
    49. call symputx("CVF_FlagVarFormat",FORMAT);
    50. call symputx("CVF_FlagVarFormatL",FORMATL);
    51. end;
    52. run;

    53. %let &FlagVarFormat=&CVF_FlagVarFormat.&CVF_FlagVarFormatL;
    54. %end;
    55. %end;
    56. %else %do;
    57. %put ERROR: There is no variable named %SCAN(&InputVar,%SYSFUNC(FIND(&CVF_FlagVarExists,0))), please check it again.;
    58. %goto exit;
    59. %end;
    60. %end;
    61. %else %if &CVF_FlagDataSetExists EQ 0 %then %do;
    62. %put ERROR: The DataSet "&SourceTable." does not exist, please check it again.;
    63. %goto exit;
    64. %end;
    65. %else %do;
    66. %put ERROR: There may be something wrong with the macro ChkDataSet, please contact the writer for help.;
    67. %goto exit;
    68. %end;

    69. /* 若要顯示&FlagVarFormat的值,請(qǐng)取消下面的注釋 */
    70. /*%put &FlagVarFormat=&&&FlagVarFormat;*/

    71. /* 刪除不必要的表格 */
    72. proc delete data=CVF_temp;
    73. run;

    74. %exit:
    75. %mend;


    76. %macro Demo();

    77. %let SourceTable=AOQR_DetHoldingsOfFund_Chosen;
    78. %let InputVar=End_Date Fund_Name Fund_Code;
    79. %let FlagVarFormat=FlagVarFormat1;
    80. %ChkVarFormat(&SourceTable,&InputVar,&FlagVarFormat);

    81. %mend;
    復(fù)制代碼

    二維碼

    掃碼加我 拉你入群

    請(qǐng)注明:姓名-公司-職位

    以便審核進(jìn)群資格,未注明則拒絕

    關(guān)鍵詞:ChkVarFormat format FORMA sas基礎(chǔ) Rfor 基礎(chǔ)

    已有 1 人評(píng)分經(jīng)驗(yàn) 論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    webgu + 100 + 100 + 3 + 3 + 3 精彩帖子

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

    本帖被以下文庫(kù)推薦

    playmore邀請(qǐng)您訪問ChinaTeX論壇。!進(jìn)入ChinaTeX論壇
    沙發(fā)
    webgu 發(fā)表于 2013-4-16 08:42:26 |只看作者 |壇友微信交流群
    很用心啊,以后得自己專門總結(jié)特定的宏。
    SAS資源
    1. SAS 微信:StatsThinking
    2. SAS QQ群:348941365
    藤椅
    goodstudentyxr 發(fā)表于 2013-6-8 20:40:18 |只看作者 |壇友微信交流群
    板凳
    goodstudentyxr 發(fā)表于 2013-6-8 20:50:09 |只看作者 |壇友微信交流群

    本版微信群
    加好友,備注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 21:35