楼主: shiloukang
4708 12

[SAS EM] 紧急求助 sas中如何统计连续变量出现的次数 [推广有奖]

  • 0关注
  • 0粉丝

初中生

23%

还不是VIP/贵宾

-

威望
0
论坛币
116 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
177 点
帖子
20
精华
0
在线时间
6 小时
注册时间
2015-6-10
最后登录
2019-4-24

40论坛币
sas文件的格式如下,截取了部分,想统计出dy这个变量相同值连续出现的次数,连续出现的次数也没有什么规律,数据量稍大。求解,谢谢! Capture1.PNG Capture2.PNG

最佳答案

Strive、 查看完整内容

data temp1; set dy1; retain continut_n index; if dy = lag(dy) then ; continut_n+1; else do; continut_n = 1; index + 1; end; run; data new; set temp1; by index; if last.index; run;
关键词:连续变量 紧急求助 急求助
沙发
Strive、 发表于 2018-2-2 13:43:42 |只看作者 |坛友微信交流群
    data temp1;
            set dy1;
            retain continut_n index;
            if dy = lag(dy) then ; continut_n+1;
            else do; continut_n = 1; index + 1; end;
    run;

data new;
    set temp1;
    by index;
    if last.index;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

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

使用道具

藤椅
舍身卫道 发表于 2018-2-2 14:01:18 |只看作者 |坛友微信交流群
楼主,相同的值会不会重复出现呢,比如上面dy为2.51连续出现几次,后面时间又出现2.51的值,那连续出现就会出现2个2.51的统计值,你想怎么处理呢?

使用道具

板凳
Strive、 发表于 2018-2-2 14:04:29 |只看作者 |坛友微信交流群
  1. data temp1;
  2.         set dy1;
  3.         retain continut_n;
  4.         if dy = lag(dy) then continut_n+1;
  5.         else continut_n = 1;
  6. run;
复制代码

使用道具

报纸
shiloukang 发表于 2018-2-2 14:15:13 |只看作者 |坛友微信交流群
舍身卫道 发表于 2018-2-2 14:01
楼主,相同的值会不会重复出现呢,比如上面dy为2.51连续出现几次,后面时间又出现2.51的值,那连续出现就会 ...
可能会有,这个就当作不同的数字来看,我主要是想看一下数字的连续状况,数字本身是多少没关系的,如果数字相同,但是是间隔的,就分开统计就行。

使用道具

地板
shiloukang 发表于 2018-2-2 14:20:29 |只看作者 |坛友微信交流群
Strive、 发表于 2018-2-2 14:04
谢谢你,不过我想把每组n的最大值保留下来,请问有没有办法呢?

使用道具

7
shiloukang 发表于 2018-2-2 14:27:42 |只看作者 |坛友微信交流群
Strive、 发表于 2018-2-2 14:04
就是以1开始的就是一组,如果没有连续相同值,n就等于1的话,就把1保留下来就好,请问有方法可以做到吗?

使用道具

8
gyuanmei 发表于 2018-2-2 14:39:17 |只看作者 |坛友微信交流群
用Freq过程。

使用道具

9
shiloukang 发表于 2018-2-2 14:41:28 |只看作者 |坛友微信交流群
Strive、 发表于 2018-2-2 14:23
data temp1;
            set dy1;
            retain continut_n index;
我试了一下 OK的,谢谢你!能不能再请问一下这个code写出来的结果会不会把相同但是不是连续出现的数据也算成是连续出现的呢?就像1楼那个朋友说的那样?

使用道具

10
shiloukang 发表于 2018-2-2 14:41:31 |只看作者 |坛友微信交流群
Strive、 发表于 2018-2-2 14:23
data temp1;
            set dy1;
            retain continut_n index;
我试了一下 OK的,谢谢你!能不能再请问一下这个code写出来的结果会不会把相同但是不是连续出现的数据也算成是连续出现的呢?就像1楼那个朋友说的那样?

使用道具

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

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

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

GMT+8, 2024-4-27 21:25