全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2276 4
2014-11-20
各位大侠好!
       有如下数据,请教大家:
姓名 病案号 手术日期 手术名称出院日期
小王 01 2012-11-2 xx 2012-11-7
小李 02 2012-11-2 xy 2012-11-8
小李 02 2012-11-2 xy 2012-11-8
小黄 03 2012-11-2 xx 2012-11-9
小黄 03 2012-11-6 xy 2012-11-9
小黄 03 2012-11-7 xa 2012-11-18
小黄 03 2012-11-11 xz 2012-11-18

问题1:如果一个病人出院日期前只做了1次手术,那么新变量重返次数=0;如病案号01
如果一个病人出院日期前做了2次以上相同或不同的手术(含2次),则重返次数=1;但是,如果手术名称相同,需要生成其他新变量同手术次数=1;如病案号02
如果同一个病人有不同出院日期,且相同出院日期前做了2次以上相同或不同手术(含2次),则重返次数=2;如病案号03。如果其中一个出院日期前只做了1次手术,则重返次数=1;(没有例子)
问题2:如果我想挑选出出院日期完全相同的病人,如只输出病案号02、03
问题3:如果我想以病案号为分组变量,批量转置手术日期、手术名称、出院日期,不知是否可行?
问题4:此数据从系统导出,日期变量为字符型,试着以format为日期格式似乎不可行,是否有更合适的方法,我可以继续搜索,如果有好方法可以分享下!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-20 22:18:29
这应该都属于sas base的内容,用sort过程,first.VAR等等应该可以完成的,看下BASE的这些过程,不知道会不会用到lag函数,都看下吧,很有用的,纯属路过。。。。
二维码

扫码加我 拉你入群

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

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

2014-12-1 13:31:32
问题1:没有完全理解,暂时把前两个如果看作是没有不同出院日期的人,后两个看作有不同出院日期的人,可能没包括所有的情况,请楼主先试一下:

复制代码


问题2:“挑选出出院日期完全相同的病人” 应该怎么理解?病案号03有两个不同的出院日期

问题3: 楼主需要转置后得到什么样的格式,可否举个例子?

问题4: 是这个意思吗?


data test1;
set test;
date1=input(surdate,yymmdd10.);
date2=input(outdate,yymmdd10.);
format date1 date2 yymmdd10.;
keep surdate outdate date1 date2;
run;
二维码

扫码加我 拉你入群

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

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

2014-12-4 10:39:08
你好,问题1、问题2、问题4你写的程序已经回答,问题3:
想把以下表格
姓名         病案号 手术日期         手术名称        出院日期
小李         02         2012-11-2         xy              2012-11-8
小李         02         2012-11-2         xy              2012-11-8
一步到位转置变为如下格式
姓名         病案号 手术日期1  手术日期2  手术名称1 手术名称2         出院日期1    出院日期2
小李         02          2012-11-2  2012-11-2   xy                 xy             2012-11-8     2012-11-8
不知是否可行?
非常感谢你的帮助和引导!

二维码

扫码加我 拉你入群

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

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

2014-12-4 12:34:20
有些美元符号显示不出来,比如input跟length语句后面的,请根据情况修改。
复制代码




二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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