请选择 进入手机版 | 继续访问电脑版
楼主: lachance
2005 4

SAS 如何程序生成这样的列数据 [推广有奖]

  • 1关注
  • 3粉丝

讲师

44%

还不是VIP/贵宾

-

威望
0
论坛币
693 个
通用积分
0.0157
学术水平
4 点
热心指数
5 点
信用等级
1 点
经验
10072 点
帖子
403
精华
0
在线时间
399 小时
注册时间
2008-1-22
最后登录
2020-4-15

lachance 发表于 2014-12-6 09:33:17 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

数据结构如下:

V1 V2 总是同时有数据, V3V4也是总是同时有数据。

想在SAS中实现如下功能:

从第一块红色数据开始, V1 V2同时有数据时,group_id 自动生成1

然后到了第二块蓝色数据, V3V4同时有数据时,group_id 自动生成2

以此类推, 3, 4, 5 ....

请问如何自动生成这样的列数据?


idNameSaleV1V2V3V4group_id

1

a

1.65

0

1

1

2

a

1.66

0

1

1

3

a

1.66

0

1

1

4

a

1.66

1

0

1

5

a

1.65

1

0

1

6

a

1.65

1

0

1

7

a

1.65

1

0

1

8

a

1.53

9

a

1.5

1

0

2

10

a

1.64

1

0

2

11

a

1.66

0

1

2

12

a

1.66

0

1

2

13

a

1.66

0

1

3

14

a

1.28

0

1

3

15

a

1.28

1

0

3

16

a

1.27

1

0

3

17

a

1.27

1

0

3

18

a

1.26

19

a

1.25

20

a

1.25

21

a

1.26

22

a

1.25

1

0

4

23

a

1.26

1

0

4

24

a

1.26

1

0

4

25

a

1.26

0

1

4

26

a

1.26

0

1

4

27

a

1

28

a

2

29

a

1.27

0

1

5

30

a

1.25

0

1

5

31

a

1.25

1

0

5

32

a

1.25

1

0

5


二维码

扫码加我 拉你入群

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

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

关键词:Group Names 自动生成 sale name 如何

回帖推荐

mingfeng07 发表于2楼  查看完整内容

[
mingfeng07 学生认证  发表于 2014-12-6 10:30:27 |显示全部楼层 |坛友微信交流群
  1. data want;
  2. set test;
  3. if missing(v1)^=missing(lag(v1)) then group_id+1;
  4. run;
  5. data want;
  6. set want;
  7. if cmiss(of _all_)=4 then group_id=.;
  8. run;
复制代码
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
lachance + 5 + 2 + 2 + 2 精彩帖子
李会超 + 40 + 2 分析的有道理
teqel + 1 + 1 + 1 观点有启发

总评分: 经验 + 40  论坛币 + 5  学术水平 + 5  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

teqel 发表于 2014-12-6 10:54:04 |显示全部楼层 |坛友微信交流群
能做,不一定最好
  1. data test;   
  2.    input id v1 v2 v3 v4;
  3. cards;
  4. 1 0 1  . .
  5. 2 1 1  . .
  6. 3 1 1  . .
  7. 4 . .  0 0
  8. 5 . .  1 0
  9. 6 . .  0 0
  10. 7 . .  . .
  11. 8 0 1  . .
  12. 9 1 1  . .
  13. 4 . .  0 1
  14. 5 . .  1 0
  15. 6 . .  1 1
  16. ;


  17. data want (drop=temp);
  18. set test;
  19. retain temp 1;
  20. if missing(v1) and not missing(lag(v1)) then temp+1;
  21. if missing(v3) and not missing(lag(v3)) then temp+1;
  22. if not missing(v1) then group_id=temp;
  23. if not missing(v3) then group_id=temp;
  24. run;
复制代码

使用道具

teqel 发表于 2014-12-6 11:00:34 |显示全部楼层 |坛友微信交流群
mingfeng07 发表于 2014-12-6 10:30
不错,比我的好

使用道具

gaotao0727 发表于 2014-12-8 14:25:31 |显示全部楼层 |坛友微信交流群
mingfeng07 发表于 2014-12-6 10:30
漂亮~~

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-29 01:12