全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1492 1
2018-07-03
数据集 n
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,不知道有没有大神能快速的解决这个问题。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-7-18 11:27:18
我暂时想到这个方法
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/allcount *100;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群