SAS中文论坛

标题: 怎样把部分观察值变成一个新变量?多谢了 [打印本页]

作者: shiyiming    时间: 2005-4-7 06:35
标题: 怎样把部分观察值变成一个新变量?多谢了
比如这样一组数据

ID Relationship Age Job Household
101 1 50 2 1
102 3 24 6 1
103 1 34 3 2
105 3 4 . 2
106 3 6 . 2
107 5 4 1 2
ID 表示个人代号, Household 表示家庭代号,相同的是一家人,Relationship中1表示家长,3表示孩子,5表示其他成员。Age 连续变量, Job是分类变量. 点号,表示缺失值。

现在想把一个家庭中的家长年龄, Job,当成一个独立变量和他孩子对应起来,其他成员不考虑。比如
ID Relationship Age Job Household ParentAge ParentJob
102 3 24 6 1 50 2
105 3 4 . 2 34 3
106 3 6 . 2 34 3
107 5 4 1 2 .    .

应该怎样操作呢,谢谢各位朋友
作者: shiyiming    时间: 2005-4-7 11:32
标题: 重复啊重复
每次你们在不同的论坛贴同一个问题,我都要从一个论坛把回答再贴到另一个论坛。唉。
[code:3df62]
data old;
input ID$ Relationship Age Job $char1. Household;
cards;
101 1 50 2 1
102 3 24 6 1
103 1 34 3 2
105 3 4 . 2
106 3 6 . 2
107 5 47 1 2
;
run;


proc sql;
  create table temp as
  select age,job,household
  from old
  where relationship=1
  ;

  select old.*,
          case
            when old.relationship=3 then temp.age
            else .
            end   as ParentAge,
          case
            when old.relationship=3 then temp.job
            else '.'
            end   as ParentJob
  from old,temp
  where temp.household=old.household and old.relationship<>1
  ;[/code:3df62]
作者: shiyiming    时间: 2005-4-8 02:51
标题: 怎么看不见回复?
一点击就是广告?衷心谢谢AHUIGE的帮助!




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2