全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2028 3
2014-09-24
RT,我想用更新数据集来更新主数据集,但是主数据集同一变量有多个观测,为什么结果只更新了第一条,难道和update一样只能更新一条?
例如:主数据集:
name    age
张三     12
张三      19
张三     20
李四      15

更新数据集:
name   age
张三     30


我想要的结果:
name   age
张三     30
张三    30
张三    30
李四    15

但是merge 主数据集   更新数据集  后  结果为;
name   age
张三    30
张三    19
张三    20
李四    15

分析了一下PDV过程,主数据集中张三的地第二条观测进去后又把age从30变回到19了,这该如何处理?谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2014-9-24 17:23:00
没有by name吧。。
二维码

扫码加我 拉你入群

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

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

2014-9-24 19:07:03
群里的大神给出了两个思路
一个是 case when 用于sql
一个是 if then 用于data步
前者根据思路我写的代码:
proc sql;
       select b.name,
                           case
                                when n.age is not missing then n.age
                                else b.age
                        end as age
       from d1 as b
       full join
       d2 as n
       on b.name=n.name;
   quit;
后者是群里大神提供思路时一起提供的:
data a;
    merge d1 d2(rename=(age=new_age));
    by name;
    if new_age ne . then age=new_age;
    drop new_age;
run;
二维码

扫码加我 拉你入群

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

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

2014-9-24 22:12:04
天外飞猴斯基 发表于 2014-9-24 19:07
群里的大神给出了两个思路
一个是 case when 用于sql
一个是 if then 用于data步
嗯,非常感谢,我也想到了第二个赋值的方法,看来没错了,谢谢。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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