楼主: whymath
597 3

[程序分享] 开源宏库计划_11:%stat_countbystrata [推广有奖]

  • 1关注
  • 16粉丝

实习版主

副教授

12%

还不是VIP/贵宾

-

威望
0
论坛币
5649 个
通用积分
747.4267
学术水平
121 点
热心指数
140 点
信用等级
83 点
经验
21768 点
帖子
556
精华
2
在线时间
566 小时
注册时间
2018-5-31
最后登录
2024-4-25

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
名称: %stat_countbystrata
简介: 为数据集中的变量计算缺失数和缺失率
依赖子宏: %var_exist
说明:
    1. 该宏采用的表查询方式速度较慢,将在未来的版本改进
    2. 结果数据集中例数(Number of Subjects)是当前分层组合下受试者(由SUBJECT=指定)去重后的计数例次(Number of Events)是当前分层组合下受试者的直接计数;
    3. 结果数据集按照分层1的全部组别的例数降序排列,然后按分层1水平值升序,然后按分层2的全部组别的例数降序,然后按分层2水平值升序,依此类推;
    4. 在一个分层中,合计水平总是排在前面,未编码的水平总是排在后面,而其它水平排在中间;
    5. 该宏支持对多层数据的分析,原型是临床数据分析中“AE按照系统器官分类和首选术语的分层分析”。理论上,最多可以支持 1023 个层;
参考: SAS帮助文档、《
A-P-P Advanced Data Management Functions
源代码: stat_countbystrata.zip (2.7 KB) 本附件包括:
  • stat_countbystrata.sas





二维码

扫码加我 拉你入群

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

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

关键词:Count Management Managemen Functions function

stat_countbystrata.zip

2.7 KB

%stat_countbystrata

本附件包括:

  • stat_countbystrata.sas

已有 1 人评分经验 学术水平 热心指数 收起 理由
dxystata + 100 + 1 + 1 精彩帖子

总评分: 经验 + 100  学术水平 + 1  热心指数 + 1   查看全部评分

SASUSER
沙发
whymath 发表于 2023-4-13 22:45:58 |只看作者 |坛友微信交流群
用法示例:
*首先创建用于测试的数据集;
  1. data adsl(drop=i);
  2.   do i=1 to 300;
  3.     usubjid='A167'||put(i,z3.);
  4.     trt01an=rantbl(0,0.3333,0.3333,0.3334);
  5.     output;
  6.   end;
  7. run;

  8. data adae;
  9.   length usubjid $20.  aeterm aebodsys aedecod aellt $200.;
  10.   call streaminit(1);
  11.   do i=1 to 300;
  12.     p=rand('uniform',0,1);
  13.     if p<=0.8 then do;
  14.       usubjid='A167'||put(i,z3.);
  15.       do j=1 to int(rand('uniform',0,7));
  16.         aeterm='AE'||put(j,z1.);
  17.         k=round(rand('uniform',1,5));
  18.         a=round(rand('uniform',1,5));
  19.         b=round(rand('uniform',1,5));
  20.         aebodsys='SOC'||put(k*100,z3.);
  21.         aedecod='PT'||put(k*100+a*10,z3.);
  22.         aellt='LLT'||put(k*100+a*10+b,z3.);
  23.         output;
  24.       end;
  25.     end;
  26.   end;
  27.   drop i p j k a b;
  28. run;

  29. data adae;
  30.   set adae;
  31.   do i=1 to rec until(trtan);
  32.     set adsl(keep=usubjid trt01an rename=usubjid=tmpusubjid)nobs=rec point=i;
  33.     if usubjid=tmpusubjid then trtan=trt01an;
  34.   end;
  35.   drop tmpusubjid i;
  36. run;
复制代码

*调用宏%stat_countbystrata;
  1. %stat_countbystrata(dsin=adae,dsout=myout,denom=adsl,strata=aebodsys aedecod aellt,class=trt01an,subject=usubjid);
复制代码

*结果截图;
1.png
SASUSER

使用道具

藤椅
dxystata 发表于 2023-4-14 16:09:12 |只看作者 |坛友微信交流群
谢谢分享!

使用道具

板凳
yutian77 发表于 2023-4-14 22:20:36 |只看作者 |坛友微信交流群
谢谢分享!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 21:54