楼主: calsunny
1293 8

请教SAS 问题 [推广有奖]

  • 2关注
  • 5粉丝

讲师

84%

还不是VIP/贵宾

-

威望
0
论坛币
3460 个
通用积分
12.8619
学术水平
2 点
热心指数
5 点
信用等级
1 点
经验
1653 点
帖子
468
精华
0
在线时间
732 小时
注册时间
2007-4-3
最后登录
2019-12-3

楼主
calsunny 发表于 2015-2-4 01:11:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请帮忙看一下SAS 应该怎么写比较简单些, 自己用 data step 也写出来了,但是不能一步完成,谢谢!
I have data, which is like:
ID   Year   Count
1    2010     5
1   2011    8
1   2012    10
2   2010    15
2   2011     20
2  2012    15
3  2010    30
3  2012   15
要求
1. 所有ID 都必须至少有三年的数据,如果缺年份的删除此ID 的所有数据
2. 所有年份的 count 都大于10,如果有一年小于10的,那么删除此ID 的所有数据

二维码

扫码加我 拉你入群

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

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

关键词:Data step Count Which Data year count 2011

沙发
calsunny 发表于 2015-2-4 01:46:10
  1. proc sql;
  2. create table b as
  3. select *
  4. from a
  5. group by ID
  6. having count(year)>=3and count>=10;
  7. quit;
复制代码
自己做出来了,谢谢!

藤椅
李会超 发表于 2015-2-4 11:14:03
很多时候还是感觉sql方便啊

板凳
sushe1527 发表于 2015-2-4 11:36:51
calsunny 发表于 2015-2-4 01:46
自己做出来了,谢谢!
你的程序是错误的,下面才是符合要求的
  1. data a;
  2. input ID   Year   Count;
  3. cards;
  4. 1    2010     15
  5. 1   2010    18
  6. 1   2010    10
  7. 1   2011    10
  8. 2   2010    15
  9. 2   2011     20
  10. 2  2012    15
  11. 3  2010    30
  12. 3  2012   15
  13. ;run;
  14. proc sql;
  15. create table b as
  16. select *
  17. from a where  count>=10
  18. group by ID
  19. having count(distinct(year))>=3 ;
  20. quit;
复制代码

报纸
wpfwxn 发表于 2015-2-6 15:40:57
数据处理比较复杂的时候,就会觉得data步强大了!data步使用多了,会上瘾

地板
calsunny 发表于 2015-2-6 23:02:37
sushe1527 发表于 2015-2-4 11:36
你的程序是错误的,下面才是符合要求的
非常感谢,我后来自己也发现了问题,忘记回来修改了。顺便感谢你上次帮我写的SQL 程序,无比崇拜。

7
teqel 发表于 2015-2-7 11:14:58
sushe1527 发表于 2015-2-4 11:36
你的程序是错误的,下面才是符合要求的
这个程序不满足条件2

8
sushe1527 发表于 2015-2-7 11:22:49
teqel 发表于 2015-2-7 11:14
这个程序不满足条件2
多谢 大意了
  1. data a;
  2. input ID   Year   Count;
  3. cards;
  4. 1    2010     5
  5. 1   2010    18
  6. 1   2011    10
  7. 1   2012    10
  8. 2   2010    15
  9. 2   2011     20
  10. 2  2012    15
  11. 3  2010    30
  12. 3  2012   15
  13. ;run;
  14. proc sql;
  15. create table b as
  16. select *
  17. from a
  18. group by ID
  19. having count(distinct(year))>=3 and  min(count)>=10;
  20. quit;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
teqel + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

9
teqel 发表于 2015-2-7 11:42:35
sushe1527 发表于 2015-2-7 11:22
多谢 大意了
这个remerging很有意思

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

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