|
地板

楼主 |
发表于 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;
可是不能实现, 跪求高手指教。。。。。。。。 |
|