楼主: qikuiming
1710 3

[实际应用] 100币求助SAS操作,在某个条件下根据一个数据集填补主数据集的缺失数据 [推广有奖]

  • 0关注
  • 1粉丝

已卖:4份资源

大专生

76%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
387 点
帖子
31
精华
0
在线时间
64 小时
注册时间
2015-6-21
最后登录
2020-2-18

楼主
qikuiming 发表于 2018-3-6 19:51:10 |AI写论文
100论坛币



求助各位大神,我有两个数据集,如图
1520336308400.jpg
t1是主数据集,t2是其他数据集,变量都相同。
我需要把t1数据填补更新,目前t1缺失2个值(如红色圆圈),而虽然t2也有缺失值,但t2里面有一个t1没有的,我应该如何写命令才能把t2的这一个值填到t1里,但不要t2的其他数据呢,即保持t1数据集不变?
而且,必须是在t1里的a2和b2等于t2里的a2和b2的前提下。因为A和B两个变量在两个数据集都是最全的(不存在缺失),其他变量却都有缺失。所以,不能仅仅by A或by B就填补,必须是A和B同时匹配的情况下,才能填补缺失的c2。

注意:t2的数据也不全,仅仅是有些值是t2有但t1缺失的,但t1和t2变量完全相同,求大神指点,100币悬赏
另,主数据集有1个,但其他数据集有十几个,每个数据集有1万多个指标,图仅仅是示例,求指点。

我大体想了想程序的思路应该是:
if C=" " in t1,then replace C in t2;
if D="." in t1,then replace D in t2;
if E=....(有十几个变量)
where data t1.A= data t2.A and data t1.B= data t2.B


但本人初学SAS,还请高手指点。



关键词:缺失数据 数据集 replace place 初学sas
已有 1 人评分论坛币 收起 理由
happy_287422301 + 100 鼓励积极发帖讨论

总评分: 论坛币 + 100   查看全部评分

沙发
l1i2n3i4n5g 在职认证  发表于 2018-3-6 19:51:11
  1. data t1;
  2.    input (A B C D) ($);
  3. cards;
  4. a1 b1 c1 d1
  5. a2 b2 . d2
  6. a3 b3 c3 .
  7. ;
  8. run;

  9. data t2;
  10.    input (A B C D) ($);
  11. cards;
  12. a1 b1 c1 .
  13. a2 b2 c2 d2
  14. a3 b3 c3 .
  15. a4 b4 . d4
  16. ;
  17. run;

  18. proc sort data=t1;
  19.    by A B;
  20. run;

  21. proc sort data=t2;
  22.    by A B;
  23. run;

  24. data t3;
  25.    update t1(in=in_t1) t2;
  26.    by A B;
  27.    if in_t1=1;
  28. run;
复制代码

藤椅
qikuiming 发表于 2018-3-7 10:56:29
l1i2n3i4n5g 发表于 2018-3-6 19:51
谢大神,完美解决了问题

板凳
miemiehei 发表于 2020-5-26 10:41:52
l1i2n3i4n5g 发表于 2018-3-6 19:51
试了一下这个代码,t2还是会覆盖t1中没有缺失的内容,这要怎么解决

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 01:54