label critfl count
a no 1
a total 1
b yes 12
b no 2
b total 14
想变成的样子
label critfl count percent
a no 1 100
a total 1
b yes 12 85.7
b no 2 14.3
b total 14
就是同一个label的no/total yes/total 得到的数值新变成一个变量。我通过转置再转置能解决这个问题,但是觉得很low,不知道有没有大神能快速的解决这个问题。

|
楼主: 消散2
|
1543
1
[问答] 请大神们通过SQL 或者使用SAS转置解决如下问题。 |
|
本科生 33%
-
|
回帖推荐我暂时想到这个方法
data n;
input label $ critfl $ count ;
cards;
a no 1
a total 1
b yes 12
b no 2
b total 14
;
run;
proc sql noprint;
create table n1 as
select a.*, b.count as allcount
from n as a left join n(where=(critfl='total')) as b
on a.label=b.label
group by a.label;
quit;
data n2;
set n1;
if critfl ne 'total' then percent= count/all ...
| ||
|
|
| ||||||||
加好友,备注cda京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明


