SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 784|回复: 3
打印 上一主题 下一主题

如何统计两个数据集中某个变量出现的频率,并生成新的数据集

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-7-31 01:34:12 | 只看该作者

如何统计两个数据集中某个变量出现的频率,并生成新的数据集

想问一个很菜的问题(请勿见笑)

如何统计两个数据集中某个变量出现的频率,并生成新的数据集 例如,

Before
Data set A,
道路编号        车祸地点        车祸编号
a_route        milepost        caseno
10010        47.91        199104375
10020        10.43        199133604
10020        13.46        199108414
10060        3.45        199116117
10060        7.2        199116115
10080        2.8        199147873
.
.and Data set B,
道路编号        弯道起点        弯道终点
routeno        begmp        endmp
10010        0        24.7
10010        24.7        28.37
10010        28.37        34.37
10010        34.37        39.62
10010        39.62        40.12
10010        40.12        44.46
10010        44.46        44.92
10010        44.92        47.32
10010        47.32        48.11
10020        0        0.29
10020        0.29        0.43
10020        0.43        0.93
10020        0.93        1.15
10020        1.15        1.5
10020        1.5        1.97
10020        1.97        2.78
10020        2.78        3.11
10020        3.11        5.22
10020        5.22        5.6
10020        5.6        6.65
10020        6.65        9.5
10020        9.5        11.55
10020        11.55        11.69
10020        11.69        14.66
10020        14.66        14.96
10030        0        6
10030        6        8.25
10030        8.25        9.81
10030        9.81        10

.
.


After
Data set C,
道路编号        弯道起点        弯道终点        车祸频率
routeno        begmp        endmp        accfreq
10010        0        24.7        0
10010        24.7        28.37        0
10010        28.37        34.37        0
10010        34.37        39.62        0
10010        39.62        40.12        0
10010        40.12        44.46        0
10010        44.46        44.92        0
10010        44.92        47.32        0
10010        47.32        48.11        0
10020        0        0.29        0
10020        0.29        0.43        0
10020        0.43        0.93        0
10020        0.93        1.15        0
10020        1.15        1.5        0
10020        1.5        1.97        0
10020        1.97        2.78        0
10020        2.78        3.11        0
10020        3.11        5.22        0
10020        5.22        5.6        0
10020        5.6        6.65        0
10020        6.65        9.5        0
10020        9.5        11.55        1
10020        11.55        11.69        0
10020        11.69        14.66        1
10020        14.66        14.96        0
10030        0        6        0
10030        6        8.25        0
10030        8.25        9.81        0
10030        9.81        10        0
.
.
..
.
..

我的想法是:

proc sql;
  create table addcnt as
  select *,count(routeno) as cnt
  from a b
  group by routeno;
quit;

跪求高手指教。。。。。。。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-7-31 19:34:24 | 只看该作者

不明白你的意思啊
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2006-7-31 22:24:22 | 只看该作者

RE:

I think lxlinxu attempt to join A and B, then count 道路编号.
[code:bb473]proc sql;
create table addcnt as
select *, count(routeno) as cnt
from a , b
group by routeno
having a.a_route =b.routeno;
quit;
[/code:bb473]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2006-7-31 22:49:30 | 只看该作者

想统计每段弯道上车祸的频率并生成新的数据集C

如何统计两个数据集中某个变量出现的频率,并生成新的数据集 例如,

以知某条路上的车祸记录的数据集A和道路上弯道的数据集B,想统计每段弯道上车祸的频率并生成新的数据集C

Before
Data set A,
道路编号        车祸地点        车祸编号
a_route        milepost        caseno
10010        47.91        199104375
10020        10.43        199133604
10020        13.46        199108414
10060        3.45        199116117
10060        7.2        199116115
10080        2.8        199147873
.
.and Data set B,
道路编号        弯道起点        弯道终点
routeno        begmp        endmp
10010        0        24.7
10010        24.7        28.37
10010        28.37        34.37
10010        34.37        39.62
10010        39.62        40.12
10010        40.12        44.46
10010        44.46        44.92
10010        44.92        47.32
10010        47.32        48.11
10020        0        0.29
10020        0.29        0.43
10020        0.43        0.93
10020        0.93        1.15
10020        1.15        1.5
10020        1.5        1.97
10020        1.97        2.78
10020        2.78        3.11
10020        3.11        5.22
10020        5.22        5.6
10020        5.6        6.65
10020        6.65        9.5
10020        9.5        11.55
10020        11.55        11.69
10020        11.69        14.66
10020        14.66        14.96
10030        0        6
10030        6        8.25
10030        8.25        9.81
10030        9.81        10

.
.


After
Data set C,
道路编号        弯道起点        弯道终点        车祸频率
routeno        begmp        endmp        accfreq
10010        0        24.7        0
10010        24.7        28.37        0
10010        28.37        34.37        0
10010        34.37        39.62        0
10010        39.62        40.12        0
10010        40.12        44.46        0
10010        44.46        44.92        0
10010        44.92        47.32        0
10010        47.32        48.11        0
10020        0        0.29        0
10020        0.29        0.43        0
10020        0.43        0.93        0
10020        0.93        1.15        0
10020        1.15        1.5        0
10020        1.5        1.97        0
10020        1.97        2.78        0
10020        2.78        3.11        0
10020        3.11        5.22        0
10020        5.22        5.6        0
10020        5.6        6.65        0
10020        6.65        9.5        0
10020        9.5        11.55        1
10020        11.55        11.69        0
10020        11.69        14.66        1
10020        14.66        14.96        0
10030        0        6        0
10030        6        8.25        0
10030        8.25        9.81        0
10030        9.81        10        0
.
.
..

我的想法是:

proc sql;
  create table addcnt as
  select *,count(routeno) as cnt
  from a b
  group by id;
quit;

可是不能实现, 跪求高手指教。。。。。。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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