SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 793|回复: 6
打印 上一主题 下一主题

请问如何计数?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-4-7 14:33:00 | 只看该作者

请问如何计数?

我有下面这样的一个数据:
date        date_be
20050203        2005-1-4
20050303        2005-2-1
20050325        2005-2-23
20050412        2005-3-13
20050418        2005-3-19
20050427        2005-3-28
20050509        2005-4-9
20050510        2005-4-10
20050518        2005-4-18
20050523        2005-4-23
20050526        2005-4-26
20050531        2005-5-1
20050603        2005-5-4
20050606        2005-5-7
20050607        2005-5-8
20060619        2006-5-20
20060623        2006-5-24
20060627        2006-5-28
20060627        2006-5-28
现在需要统计出,第一个时间变量在每个时间区间(即每一行的两个变量构成的区间)内的个数,请问怎么编程?

谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-4-7 20:32:12 | 只看该作者

Re: 请问如何计数?

问题好难理解。
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
板凳
发表于 2011-4-8 09:35:07 | 只看该作者

Re: 请问如何计数?

[code:2095l6xj]data  v;
informat date yymmdd8. date_be yymmdd10.;
format date yymmddn8. date_be yymmdd10.;
input date date_be;
cards;
20050203 2005-1-4
20050303 2005-2-1
20050325 2005-2-23
20050412 2005-3-13
20050418 2005-3-19
20050427 2005-3-28
20050509 2005-4-9
20050510 2005-4-10
20050518 2005-4-18
20050523 2005-4-23
20050526 2005-4-26
20050531 2005-5-1
20050603 2005-5-4
20050606 2005-5-7
20050607 2005-5-8
20060619 2006-5-20
20060623 2006-5-24
20060627 2006-5-28
20060627 2006-5-28
;
run;

proc sql;
create table vv as select a.date,count(*) as date_in_cnt
from v (keep=date) as a
left join v  as b
on b.date>=a.date>=b.date_be
group by a.date
order by a.date;
quit;[/code:2095l6xj]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-4-9 00:46:42 | 只看该作者

Re: 请问如何计数?

看了vicky女士的一系列回答得出一点结论是:
知性,优雅,和善于理解。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-4-10 01:31:25 | 只看该作者

Re: 请问如何计数?

高实在高
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
6#
发表于 2011-4-11 13:26:52 | 只看该作者

Re: 请问如何计数?

[quote:htkhwpn9]
由 jingju11 » 2011年 4月 9日 周六 12:46 am

看了vicky女士的一系列回答得出一点结论是:
知性,优雅,和善于理解[/quote:htkhwpn9]

Shy~~忒荣幸了~~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2011-4-15 06:33:42 | 只看该作者

Re: 请问如何计数?

I did not know anyone check the result or not.
I run the solution code above, and found some problems, e.g. obveriously, only 1 record within 20050203--20050104,  but the result is 2.
my solution is:
[code:l94vzml6]data a;
input date1 yymmdd8. date2 yymmdd10.;
format date1 date2 date9.;
unid=catx('_',date1,date2);
cards;
20050203 2005-1-4
20050303 2005-2-1
20050325 2005-2-23
20050412 2005-3-13
20050418 2005-3-19
20050427 2005-3-28
20050509 2005-4-9
20050510 2005-4-10
20050518 2005-4-18
20050523 2005-4-23
20050526 2005-4-26
20050531 2005-5-1
20050603 2005-5-4
20050606 2005-5-7
20050607 2005-5-8
20060619 2006-5-20
20060623 2006-5-24
20060627 2006-5-28
20060627 2006-5-28
;
run;
proc sql;
create table b as
select distinct unid,count(distinct date1) as cnt
   from (select d1.unid,d2.date1
           from a d1,a d2
          where d1.date2<=d2.date1<=d1.date1)
   group by unid
   order by unid;
quit;[/code:l94vzml6]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 15:02 , Processed in 0.071503 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表