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

    SAS基礎(chǔ)宏之15:GetCountForSeq-經(jīng)管之家官網(wǎng)!

    人大經(jīng)濟(jì)論壇-經(jīng)管之家 收藏本站
    您當(dāng)前的位置> 期刊>>

    期刊庫

    >>

    SAS基礎(chǔ)宏之15:GetCountForSeq

    SAS基礎(chǔ)宏之15:GetCountForSeq

    發(fā)布:playmore | 分類:期刊庫

    關(guān)于本站

    人大經(jīng)濟(jì)論壇-經(jīng)管之家:分享大學(xué)、考研、論文、會計、留學(xué)、數(shù)據(jù)、經(jīng)濟(jì)學(xué)、金融學(xué)、管理學(xué)、統(tǒng)計學(xué)、博弈論、統(tǒng)計年鑒、行業(yè)分析包括等相關(guān)資源。
    經(jīng)管之家是國內(nèi)活躍的在線教育咨詢平臺!

    經(jīng)管之家新媒體交易平臺

    提供"微信號、微博、抖音、快手、頭條、小紅書、百家號、企鵝號、UC號、一點資訊"等虛擬賬號交易,真正實現(xiàn)買賣雙方的共贏!菊堻c擊這里訪問】

    提供微信號、微博、抖音、快手、頭條、小紅書、百家號、企鵝號、UC號、一點資訊等虛擬賬號交易,真正實現(xiàn)買賣雙方的共贏!菊堻c擊這里訪問】

    宏作用:就是用來數(shù)一個序列的重復(fù)次數(shù)的在Matlab和R中,這個問題挺簡單的在SAS里就稍微復(fù)雜點,因為SAS只能在Data步里從上至下依次的循環(huán)%macroGetCountForSeq(SourceTable,TargetTable,ByFactors,InputVar,OutputV ...
    免費學(xué)術(shù)公開課,掃碼加入


    宏作用:就是用來數(shù)一個序列的重復(fù)次數(shù)的

    在Matlab和R中,這個問題挺簡單的
    在SAS里就稍微復(fù)雜點,因為SAS只能在Data步里從上至下依次的循環(huán)
    1. %macro GetCountForSeq(SourceTable,TargetTable,ByFactors,InputVar,OutputVar);

    2. /**********************************************************************/
    3. /* 此宏的作用是計算某數(shù)據(jù)表中指定變量的重復(fù)次數(shù),即連續(xù)出現(xiàn)同一值的次 */
    4. /* 數(shù)。其中,SourceTable是原始表格;TargetTable是結(jié)果表格;ByFactors*/
    5. /* 是分組變量;InputVar是目標(biāo)變量,可設(shè)置為多個,用空格分隔;Output_*/
    6. /* Var是結(jié)果變量,其值為該觀測值在序列中重復(fù)的次數(shù),若不指定,則為原*/
    7. /* 目標(biāo)變量后加后綴_Cnt。注意,在運行本宏之前需要將原始表格進(jìn)行合適的 */
    8. /* 排序。 */
    9. /* */
    10. /* 最終得到包含原數(shù)據(jù)表中指定變量的重復(fù)次數(shù)的結(jié)果表格。 */
    11. /* */
    12. /* Created on 2012.12.21 */
    13. /* Modified on 2013.3.20 */
    14. /**********************************************************************/

    15. /* 檢查TargetTable的存在性,若不存在則設(shè)為&SourceTable */
    16. %if &TargetTable EQ %STR() %then %let TargetTable=&SourceTable;

    17. /* 檢查ByFactors的存在性 */
    18. %if &ByFactors NE %STR() %then %do;
    19. %ChkVar(SourceTable=&SourceTable,InputVar=&ByFactors,FlagVarExists=GCFS_FlagVarExists1);

    20. %if %SYSFUNC(FIND(&GCFS_FlagVarExists1,0)) NE 0 %then %do;
    21. %put ERROR: The ByFactors "%SCAN(&ByFactors,%SYSFUNC(FIND(&GCFS_FlagVarExists1,0)))" does not exist in SourceTable, please check it again.;
    22. %goto exit;
    23. %end;
    24. %end;

    25. /* 檢查InputVar的存在性 */
    26. %ChkVar(SourceTable=&SourceTable,InputVar=&InputVar,FlagVarExists=GCFS_FlagVarExists2);

    27. %if %SYSFUNC(FIND(&GCFS_FlagVarExists2,0)) NE 0 %then %do;
    28. %put ERROR: The InputVar "%SCAN(&InputVar,%SYSFUNC(FIND(&GCFS_FlagVarExists2,0)))" does not exist in SourceTable, please check it again.;
    29. %goto exit;
    30. %end;

    31. /* 拆分InputVar */
    32. %SeparateString(InputString=&InputVar,OutputString=GCFS_InputVar);

    33. /* 檢查OutputVar的合法性 */
    34. %if &OutputVar NE %STR() AND %SYSFUNC(COUNT(&InputVar,%STR( ))) NE %SYSFUNC(COUNT(&OutputVar,%STR( ))) %then %do;
    35. %put ERROR: The number of InputVar and OutputVar should be equal, please check it again.;
    36. %goto exit;
    37. %end;

    38. /* 若OutputVar為空,則設(shè)置為InputVar后加_Cnt后綴 */
    39. %if &OutputVar EQ %STR() %then %do;
    40. %let OutputVar=%SYSFUNC(TRANWRD(&InputVar,%STR( ),_Cnt%STR( )))_Cnt;
    41. %end;

    42. /* 拆分OutputVar */
    43. %SeparateString(InputString=&OutputVar,OutputString=GCFS_OutputVar);

    44. /* 開始進(jìn)行計算 */
    45. /* 第一步:生成新的分組變量 */
    46. data &TargetTable;
    47. set &SourceTable;
    48. GCFS_OrderVar=_N_;
    49. run;

    50. %do GCFS_i=1 %to &GCFS_InputVar_Num;
    51. data &TargetTable;
    52. set &TargetTable;
    53. retain GCFS_VarNo_&GCFS_i GCFS_ByFactors_&GCFS_i;
    54. by &ByFactors &&GCFS_InputVar_Var&GCFS_i NOTSORTED;
    55. if first.&&GCFS_InputVar_Var&GCFS_i then GCFS_VarNo_&GCFS_i.=1;
    56. else GCFS_VarNo_&GCFS_i.+1;
    57. if _N_=1 and first.&&GCFS_InputVar_Var&GCFS_i.=1 then GCFS_ByFactors_&GCFS_i.=1;
    58. else if first.&&GCFS_InputVar_Var&GCFS_i then GCFS_ByFactors_&GCFS_i.+1;
    59. run;
    60. %end;

    61. /* 第二步:得到計數(shù)變量 */
    62. %do GCFS_j=1 %to &GCFS_InputVar_Num;
    63. proc sort data=&TargetTable;
    64. by GCFS_ByFactors_&GCFS_j DESCENDING GCFS_VarNo_&GCFS_j.;
    65. run;

    66. data &TargetTable(drop=GCFS_ByFactors_&GCFS_j GCFS_VarNo_&GCFS_j.);
    67. set &TargetTable;
    68. by GCFS_ByFactors_&GCFS_j;
    69. retain &&GCFS_OutputVar_Var&GCFS_j;
    70. if first.GCFS_ByFactors_&GCFS_j then &&GCFS_OutputVar_Var&GCFS_j=GCFS_VarNo_&GCFS_j;
    71. run;
    72. %end;

    73. /* 刪除臨時生成的OrderVar */
    74. proc sort data=&TargetTable out=&TargetTable(drop=GCFS_OrderVar);
    75. by GCFS_OrderVar;
    76. run;

    77. %exit:
    78. %mend;


    79. %macro Demo();

    80. %let SourceTable=RankOfStk;
    81. %let TargetTable=RankOfStk1;
    82. %let ByFactors=;
    83. %let InputVar=PE_Rank; /* 需要處理的目標(biāo)變量,可設(shè)置為多個,用空格分隔 */
    84. %let OutputVar=;
    85. %GetCountForSeq(&SourceTable,&TargetTable,&ByFactors,&InputVar,&OutputVar);

    86. %mend;
    復(fù)制代碼
    「經(jīng)管之家」APP:經(jīng)管人學(xué)習(xí)、答疑、交友,就上經(jīng)管之家!
    免流量費下載資料----在經(jīng)管之家app可以下載論壇上的所有資源,并且不額外收取下載高峰期的論壇幣。
    涵蓋所有經(jīng)管領(lǐng)域的優(yōu)秀內(nèi)容----覆蓋經(jīng)濟(jì)、管理、金融投資、計量統(tǒng)計、數(shù)據(jù)分析、國貿(mào)、財會等專業(yè)的學(xué)習(xí)寶庫,各類資料應(yīng)有盡有。
    來自五湖四海的經(jīng)管達(dá)人----已經(jīng)有上千萬的經(jīng)管人來到這里,你可以找到任何學(xué)科方向、有共同話題的朋友。
    經(jīng)管之家(原人大經(jīng)濟(jì)論壇),跨越高校的圍墻,帶你走進(jìn)經(jīng)管知識的新世界。
    掃描下方二維碼下載并注冊APP
    本文關(guān)鍵詞:

    本文論壇網(wǎng)址:http://xalimeijing.com/thread-3602455-1-1.html

    人氣文章

    1.凡人大經(jīng)濟(jì)論壇-經(jīng)管之家轉(zhuǎn)載的文章,均出自其它媒體或其他官網(wǎng)介紹,目的在于傳遞更多的信息,并不代表本站贊同其觀點和其真實性負(fù)責(zé);
    2.轉(zhuǎn)載的文章僅代表原創(chuàng)作者觀點,與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,本站對該文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性,不作出任何保證或承若;
    3.如本站轉(zhuǎn)載稿涉及版權(quán)等問題,請作者及時聯(lián)系本站,我們會及時處理。
    數(shù)據(jù)分析師 人大經(jīng)濟(jì)論壇 大學(xué) 專業(yè) 手機(jī)版