作者st410614 (卷)
看板Statistics
标题Re: [程式] SAS家族资料分析
时间Wed Jun 19 16:30:39 2013
※ 引述《darkstar (darkstarNN  )》之铭言:
: [软体程式类别]:
: SAS
: [程式问题]:
: 资料处理
: [软体熟悉度]:
: 高(1年以上)
: [问题叙述]:
: 有一忧郁症与躁郁症的家族资料,如下
: Diag 1:忧郁症 2:躁郁症
: ID前四码为家庭代码(1001为研究中收进的第一个家庭,1002为研究收入第二个家庭
: 前四码相同为同一家人)
: ID後两码为亲等关系(20为忧郁症或躁郁症个案,11为爸爸,12为妈妈)
: ID Diag
: 100120 1
: 100111
: 100112
: 100220 2
: 100212
: 100221
: 100320 2
: 100420 1
: 100403
: 想要新增一class栏位,将家属区分为是忧郁症病人的家属或躁郁症病人的家属,
: 忧郁症家属class为3,躁郁症家属class为4,希望长的如下
: ID Diag class
: 100120 1
: 100111 3
: 100112 3
: 100220 2
: 100212 4
: 100221 4
: 100320 2
: 100420 1
: 100403 3
: 希望能解救一下>"<,非常感谢!!
: [程式范例]:
: -----------------------------------------------------------------------------
data d1;
input ID $6. Diag;
cards;
100120 1
100111 .
100112 .
100220 2
100212 .
100221 .
100320 2
100420 1
100403 .
;
run;/*新增D1 dataset,Diag为遗漏值的部分要自行补上*/
data d2; set d1; group=substr(ID,4,1); run;
/*截取ID第四码以判别是否为同一家族*/
data diag; set d2; if diag ne .; run;
data diag; set diag; rename diag=diag2; drop ID; run;
/*新增diag2以判别家属是属於忧郁症或躁郁症*/
data d3; merge d2 diag; by group; run;
/*将D2与Diag按照家族合并,就可以区别忧郁症与躁郁症*/
data d4; set d3;
if diag=. and diag2=1 then class=3;
else if diag=. and diag2=2 then class=4;
else class=.; run;
run;/*用if....then....做分类*/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.231.65.198
1F:→ st410614:最後的部分多打了一次run; 请自行忽略罗 06/19 16:31
2F:推 darkstar:非常非常感激您!!!! 06/21 01:30