-
Notifications
You must be signed in to change notification settings - Fork 0
/
903multichoice.txt
141 lines (81 loc) · 7.72 KB
/
903multichoice.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
************************************选项分析 *******************************; **************** multichoice;
%macro multichoice(indata,xzt,xzt_num);
%do i=1 %to &xzt_num.;
data tmp;
set &indata. end=ttt;
id=_n_;
oldname="&xzt.";
subname=kscan(oldname,&i.,' ');
if ttt then call symput('itit',trim(subname));
output;
run;
data tmp&i.(keep= id subname itemabc);
set tmp;
itemabc=&itit. ;
run;
%if &i.=1 %then %do;
data outdata;
set tmp&i.;
run;
%end;
%else %do;
data outdata;
set outdata tmp&i.; by id;
run;
%end;
%end;
*proc print data= outdata;
run;
/*
proc tabulate data = outdata ;
class subname itemabc ;
table (subname="题目"),itemabc=""*(n pctn='百分比')
/ misstext="无" row=float ;
keylabel all="总计" n="人数" ;
title '选项分析';
footnote " ";
run;
ODS PATH RESET;
ODS PATH (PREPEND) WORK.Templat(UPDATE) ;
proc template;
edit Base.Freq.CrossTabFreqs;
edit TotalPercent;
header = "Tot Pct";
format = 6.2;
label = "Percent of Total Frequency";
print;
end;
edit Percent;
header = "Percent";
format = 6.2;
label = "Percent of Two-Way Table Frequency";
print;
end;
edit RowPercent;
header = "Row Pct";
format = 6.2;
label = "Percent of Row Frequency";
print;
end;
edit ColPercent;
header = "Col Pct";
format = 6.2;
label = "Percent of Column Frequency";
print;
end;
edit CumColPercent;
header = %nrstr("Cumulative Col%%");
format = 6.2;
label = "Cumulative Percent of Column Frequency";
print;
end;
end;
run;
*/
proc freq data = outdata ;
tables subname*itemabc/ nopercent nocol ;
title '选项分析';
footnote " ";
run;
%mend;
*%multichoice(test.score,xx1 xx2 xx3,3); ******最后一个参数为选择题数量;