You can use an intermediate step that calculates the counters and passes them to proc transpose. Example:
PROC SQL;
CREATE VIEW OriginalTable_v as
SELECT
ID
,ACTE
,COUNT(*) AS FREQ
FROM OriginalTable
GROUP BY ID ,ACTE
ORDER BY ID ,ACTE ;
QUIT;
proc transpose data=OriginalTable_v out=TestTranspose;
by ID;
var FREQ;
id Acte;
run;
. , ACTE. , , , , 0.
- ACTE , . :
PROC SQL;
CREATE table TestTranspose2 as
SELECT
ID
,sum(case when acte='A' then 1 else 0 end) as count_A
,sum(case when acte='B' then 1 else 0 end) as count_B
,sum(case when acte='C' then 1 else 0 end) as count_C
,sum(case when acte NOT IN ('A', 'B', 'C') then 1 else 0 end) as count_Other
,COUNT(*) AS FREQ_of_ids
FROM OriginalTable
GROUP BY ID
ORDER BY ID ;
QUIT;
, 0s, ID ACTE.
user1509107