楼主: divers
1425 3

[问答] SAS处理数据遇到困难,请大侠帮忙 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

已卖:235份资源

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
160 个
通用积分
0.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
325 点
帖子
30
精华
0
在线时间
37 小时
注册时间
2011-10-21
最后登录
2019-3-5

楼主
divers 发表于 2013-8-28 04:30:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Finess                           Siret                                Year                nobs
440015337            00568038400012            1997             1
440015337            00568038400012            1998             1
800002503            00572016400028            1997             1
800002503            00572016400028            1998             1
440016756            00687180000014            1997             1
760019554            01607121900014            1998             1
130780240            06180467000018            1997             2
130780075            06180467000018            1997             2
130780075            06180467000018            1998             2
130780240            06180467000018            1998             2
690802301            07080153500033            1997             2
690807086            07080153500033            1997             2
690807086            07080153500033            1998             1
270013543            22280001300015            1997             1
270013543            22280001300018            1998             1
280500612            22280001300018            1997             2
280502873            22280001300018            1998             2

nobs:每年每个siret拥有的finess数量(每个siret可以拥有一个或多个finess)

Q1:只保留两年间没有任何变化的siret和finess,比如:
440015337 00568038400012 1997 1
440015337 00568038400012 1998 1

data test1; set a;
if first.siret and last.siret then delete;
run;

Q2: 只保留1998年消失了的siret,也就是说这个siret之存在于1997年,1998年消失后,它原来拥有的finess被另一个siret收购(但是这个siret不是1998年新建立的,而是1997年就已经存在的),比如:
270013543 22280001300015 1997 1
270013543 22280001300018 1998 1

这个不知道怎么用SAS得到,请大侠帮帮忙,先谢谢啦!

二维码

扫码加我 拉你入群

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

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

关键词:SAS处理数据 处理数据 delete First Fine

沙发
yongyitian 发表于 2013-8-28 07:31:52
  1. data d;
  2. input Finess Siret Year nobs;
  3. format Siret z14.  finess 9.;
  4. datalines;
  5. 440015337  00568038400012  1997  1
  6. 440015337  00568038400012  1998  1
  7. 800002503  00572016400028  1997  1
  8. 800002503  00572016400028  1998  1
  9. 440016756  00687180000014  1997  1
  10. 760019554  01607121900014  1998  1
  11. 130780240  06180467000018  1997  2
  12. 130780075  06180467000018  1997  2
  13. 130780075  06180467000018  1998  2
  14. 130780240  06180467000018  1998  2
  15. 690802301  07080153500033  1997  2
  16. 690807086  07080153500033  1997  2
  17. 690807086  07080153500033  1998  1
  18. 270013543  22280001300015  1997  1
  19. 270013543  22280001300018  1998  1
  20. 280500612  22280001300018  1997  2
  21. 280502873  22280001300018  1998  2
  22. ; run;

  23. proc sql;
  24.     create table Q1(drop=count) as
  25.     select distinct a.Finess format 9.,
  26.                     a.Siret,
  27.                     a.Year,  
  28.               count(a.year) as count,
  29.                     a.nobs
  30.      from d as a, d as b
  31.         where a.finess = b.finess
  32.           and  a.Siret = b.Siret
  33.     group by a.finess, a.siret
  34.     having calculated count> 1;
  35. quit;

  36. proc sql;
  37.      create table Q2 as
  38.      select a.*
  39.       from d as a, d as b
  40.       where a.finess=b.finess and a.siret^=b.siret ;
  41. quit;
复制代码

藤椅
divers 发表于 2013-8-29 20:43:18
yongyitian 发表于 2013-8-28 07:31
谢谢 yongyitian
试了下Q2,可是SAS给我的提示是:
ERROR: Column finess could not be found in the table/view identified with the correlation name A.
ERROR: Column finess could not be found in the table/view identified with the correlation name B.

板凳
tangliang0905 发表于 2013-8-29 21:37:29
打开你的数据,在“finess“那栏点击右键,选取最后一个”column attributes“,查看这列真正的name是什么,有时候你的Finess仅仅只是label,找到名字以后,在sql步骤中相应替换所有的finess

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

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