- %MACRO AAA;
- %LET HEAD=组别\N\疗前-疗后<DBar±SD 95%CI>\组内比较<统计量P>\两组差值^n均数之差(95%CI)\组间比较<统计量 P>;
- %LET Head=%Sysfunc(Trim(&Head.));
- %PUT &HEAD;
- %LET I=1;
- %LET Head1List=;
- %LET Head1Position=;
- %LET Head2List=;
- %LET Head2Position=;
- %DO %WHILE (%QSCAN(%QUOTE(&Head.),&I.,%STR(\)) NE %STR());
- %LET MainHead= %SYSFUNC(TRIM(%QSCAN(%QUOTE(&Head.),&I.,%STR(\))));
- %PUT "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
- %PUT &MainHead;
- %IF %INDEX(%QUOTE(&MainHead.),%STR(>) ) EQ 0 %Then %DO;
- %LET Head1List=%STR(&head1List.,&MainHead.);
- %END;
- %ELSE %DO;
- %LET J= %INDEX(%QUOTE(&MainHead.),%STR(<) );
- %LET MainHead=%SUBSTR(&MainHead.,1,%EVAL(&J-1));
- %LET Head1List=%STR(&head1List.,&MainHead.);
- %END;
- %LET I=%EVAL(&I.+1);
- %END;
- %LET Head1List=%QSUBSTR(%QUOTE(&Head1List.),2);
- %PUT "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
- %PUT &Head1List;
- %MEND;
- %AAA;
- /*下面的程序如何实现和AAA的结果相同,不出现Warning*/
- /* 不同之处是上面是中文状态下的%和(),我希望是英文状态下得%和(),如何对下面的程序进行修改 */
- %MACRO AddTitleHeadInitContent();
- %GLOBAL
- gcTitleHeadB2
- gcTitleHeadC2
- gnCILevel
- ;
- %let gnCILevel=95;
- %LET gcTitleHeadB2=%QUOTE(
- 指标\条件\组别\缺失\n\Mean±SD\&gnCILevel.%nrstr(%%)CI\M(Q1~Q3)\Min~Max\统计量\P,
- );
- %put &gctitleheadb2;
- %LET gcTitleHeadC2=%QUOTE(
- 时间\中心\组别\n\疗前-疗后<DBar±SD &gnCILevel.%nrstr(%%)CI>\组内比较<统计量 P>\两组差值^n均数之差(&gnCILevel.%nrstr(%%)CI)\组间比较<统计量 P>,
- );
- %put &gctitleheadc2;
- %mend;
- %AddTitleHeadInitContent();
- %MACRO bbb(head=&gcTitleHeadB2);
- %LET Head=%nrbquote(%Sysfunc(Trim(%nrstr(&Head)))); /*modified*/
- %PUT &HEAD;
- %LET I=1;
- %LET Head1List=;
- %LET Head1Position=;
- %LET Head2List=;
- %LET Head2Position=;
- %DO %WHILE (%QSCAN(%QUOTE(&Head.),&I.,%STR(\)) NE %STR());
- /* %LET MainHead= %nrbquote(%SYSFUNC(TRIM(%QSCAN(%QUOTE(&Head.),&I.,%STR(\)))));*/ /*delete*/
- %let mainhead=%nrbquote(%qscan(&head,&i,\)); /*modified*/
- %PUT "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
- %PUT &MainHead;
- %IF %INDEX(%QUOTE(&MainHead.),%STR(>) ) EQ 0 %Then %DO;
- %LET Head1List=%STR(&head1List.,&MainHead.);
- %END;
- %ELSE %DO;
- %LET J= %INDEX(%QUOTE(&MainHead.),%STR(<) );
- %LET MainHead=%SUBSTR(&MainHead.,1,%EVAL(&J-1));
- %LET Head1List=%STR(&head1List.,&MainHead.);
- %END;
- %LET I=%EVAL(&I.+1);
- %END;
- %LET Head1List=%QSUBSTR(%QUOTE(&Head1List.),2);
- %PUT "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
- %PUT &Head1List;
- %MEND;
- %bbb;


雷达卡






京公网安备 11010802022788号







