请选择 进入手机版 | 继续访问电脑版
楼主: xlbdh2
600 2

[学科前沿] 用if-else判断两列数据 [推广有奖]

  • 3关注
  • 0粉丝

硕士生

15%

还不是VIP/贵宾

-

威望
0
论坛币
36 个
通用积分
3.4118
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1552 点
帖子
91
精华
0
在线时间
73 小时
注册时间
2007-12-15
最后登录
2022-8-7

xlbdh2 发表于 2021-9-7 00:09:22 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
原始数据如下(可copy到excel或txt中,当然要分列处理之):

series        rise        drop
1        1       
2                -1
3        1        -1
4        1       
5        1        -1
6        1       
7        1       
8                -1
9                -1
10               
11        1       
12               
13               
14        1       
15        1       
16        1        -1
17        1       
18        1       
19                -1
20               
21        1       
22        1        -1
23                -1
24                -1
25        1       


期望结果:
seriesrisedropsum
1

1

 

1

2 

-1

-1

3

1

-1

2

4

1

 

1

5

1

-1

2

6

1

 

1

7

1

 

1

8 

-1

-1

9 

-1

-1

10  

0

11

1

 

1

12  

0

13  

0

14

1

 

1

15

1

 

1

16

1

-1

2

17

1

 

1

18

1

 

1

19 

-1

-1

20  

0

21

1

 

1

22

1

-1

2

23 

-1

-1

24 

-1

-1

25

1

 

1

解释:
新生成sum列
若rise列与drop列都不是空格,则sum返回2。
若rise列或drop列任意1列为空格,则sum=rise+drop。
用SAS、Python、jave等任意1个工具实现

二维码

扫码加我 拉你入群

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

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

关键词:else LSE ELS Series python

xlbdh2 发表于 2021-9-7 00:21:43 |显示全部楼层 |坛友微信交流群
加一个需求:统计sum列里面2、1、-1、0出现次数!

使用道具

jg.sas 发表于 2021-9-30 14:23:13 |显示全部楼层 |坛友微信交流群
  1. data test;
  2. infile datalines missover;
  3. input series rise drop;
  4. datalines;
  5. 1        1      
  6. 2                -1
  7. 3        1        -1
  8. 4        1      
  9. 5        1        -1
  10. 6        1      
  11. 7        1      
  12. 8                -1
  13. 9                -1
  14. 10               
  15. 11        1      
  16. 12               
  17. 13               
  18. 14        1      
  19. 15        1      
  20. 16        1        -1
  21. 17        1      
  22. 18        1      
  23. 19                -1
  24. 20               
  25. 21        1      
  26. 22        1        -1
  27. 23                -1
  28. 24                -1
  29. 25        1   
  30. ;
  31. run;

  32. data test1;
  33.         set test;
  34.         if nmiss(rise,drop)=0 then sum=2;
  35.         if nmiss(rise,drop)>=1 then sum=coalesce(rise,0)+coalesce(drop,0);
  36. run;

  37. proc sql noprint;
  38.         create table xxx as
  39.         select sum,count(sum) as freq from test1 group by sum;
  40. quit;
复制代码

使用道具

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

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

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

GMT+8, 2024-3-29 05:30