Proc 报告 - 调用 Define 以更改 GROUPING 变量下第二行的格式?
Proc report - Call Define to change format of the second row under GROUPING variable?
我想将一种预定义格式应用到多个列,但仅适用于一个变量。问题是,这个变量有两个子组,LEFT 和 RIGHT,我的代码只改变了第一个子组的格式 - 左,而不是第二个 - 右。我想对第二个子组应用相同的格式 - 对。
这是我的代码:
DATA have;
INPUT subject $ variable $ parameter $ V1-V6;
DATALINES;
A-001 qAF Left 1 2 3 4 5 6
A-001 qAF Right 1 2 3 4 5 6
A-001 Cortical Left 1 1 1 1 1 1
A-001 Cortical Right 1 2 1 1 1 1
A-001 Posterial Left 1 1 1 2 1 1
A-001 Posterial Right 1 1 1 1 1 3
;
RUN;
PROC FORMAT;
VALUE cort
1 = 'C1'
2 = 'C2';
RUN;
PROC REPORT DATA = have;
COLUMNS subject variable parameter V1 V2 V3 V4 V5 V6 dummy;
DEFINE subject / ORDER;
DEFINE variable / ORDER;
DEFINE dummy / COMPUTED NOPRINT;
COMPUTE dummy;
IF variable = 'Cortical' THEN DO;
DO i = 4 TO 9;
CALL DEFINE (i, 'format', 'cort.');
END;
END;
ENDCOMP;
COMPUTE AFTER variable;
LINE ' ';
ENDCOMP;
OPTIONS missing = '';
RUN;
您需要保留 VARIABLE 的值。请参阅之前的计算。
PROC REPORT DATA = have;
COLUMNS subject variable parameter V1 V2 V3 V4 V5 V6 dummy;
DEFINE subject / ORDER;
DEFINE variable / ORDER;
DEFINE dummy / COMPUTED NOPRINT;
compute before variable;
hold=variable;
endcomp;
COMPUTE dummy;
IF hold = 'Cortical' THEN DO;
DO i = 4 TO 9;
CALL DEFINE (i, 'format', 'cort.');
END;
END;
ENDCOMP;
COMPUTE AFTER variable;
LINE ' ';
ENDCOMP;
OPTIONS missing = '';
RUN;
我想将一种预定义格式应用到多个列,但仅适用于一个变量。问题是,这个变量有两个子组,LEFT 和 RIGHT,我的代码只改变了第一个子组的格式 - 左,而不是第二个 - 右。我想对第二个子组应用相同的格式 - 对。
这是我的代码:
DATA have;
INPUT subject $ variable $ parameter $ V1-V6;
DATALINES;
A-001 qAF Left 1 2 3 4 5 6
A-001 qAF Right 1 2 3 4 5 6
A-001 Cortical Left 1 1 1 1 1 1
A-001 Cortical Right 1 2 1 1 1 1
A-001 Posterial Left 1 1 1 2 1 1
A-001 Posterial Right 1 1 1 1 1 3
;
RUN;
PROC FORMAT;
VALUE cort
1 = 'C1'
2 = 'C2';
RUN;
PROC REPORT DATA = have;
COLUMNS subject variable parameter V1 V2 V3 V4 V5 V6 dummy;
DEFINE subject / ORDER;
DEFINE variable / ORDER;
DEFINE dummy / COMPUTED NOPRINT;
COMPUTE dummy;
IF variable = 'Cortical' THEN DO;
DO i = 4 TO 9;
CALL DEFINE (i, 'format', 'cort.');
END;
END;
ENDCOMP;
COMPUTE AFTER variable;
LINE ' ';
ENDCOMP;
OPTIONS missing = '';
RUN;
您需要保留 VARIABLE 的值。请参阅之前的计算。
PROC REPORT DATA = have;
COLUMNS subject variable parameter V1 V2 V3 V4 V5 V6 dummy;
DEFINE subject / ORDER;
DEFINE variable / ORDER;
DEFINE dummy / COMPUTED NOPRINT;
compute before variable;
hold=variable;
endcomp;
COMPUTE dummy;
IF hold = 'Cortical' THEN DO;
DO i = 4 TO 9;
CALL DEFINE (i, 'format', 'cort.');
END;
END;
ENDCOMP;
COMPUTE AFTER variable;
LINE ' ';
ENDCOMP;
OPTIONS missing = '';
RUN;